Cómo manejar el evento de clic de niño en Expandablelistview en Android?

Estoy creando lista ampliable en Android. Tengo añadir tres textview en la disposición relativa y dos botones en la disposición linear horizontal significa que estos dos botones se agregan en una fila, así que cómo puedo lanzar el acontecimiento del tecleo en esos dos botones. Y quiero llamar a otra actividad en botón chascar en lista extensible View.But no encontré ninguna idea de cómo hacer clic en el niño en ExpandableListView . Puede alguien ayudarme please.Here es mi archivo xml.

Aquí está mi archivo xml.

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/white" android:padding="2dp" > <TextView android:id="@+id/TextView_Projectdetails" android:layout_width="match_parent" android:layout_height="25dp" android:background="@drawable/button_shape" android:paddingLeft="10sp" android:textColor="@android:color/black" /> <TextView android:id="@+id/textOne" android:layout_width="match_parent" android:layout_height="25dp" android:layout_below="@+id/TextView_Projectdetails" android:layout_marginTop="2dp" android:background="@drawable/button_shape" android:paddingLeft="10sp" android:textColor="@android:color/black" > </TextView> <TextView android:id="@+id/textTwo" android:layout_width="match_parent" android:layout_height="25dp" android:layout_below="@+id/textOne" android:layout_marginTop="2dp" android:background="@drawable/button_shape" android:paddingLeft="10sp" android:textColor="@android:color/black" > </TextView> <LinearLayout android:id="@+id/linearlAYOUT" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textTwo" android:layout_marginTop="5dp" android:orientation="horizontal" > <Button android:id="@+id/button_EditedTask" android:layout_width="0dp" android:layout_height="27dp" android:layout_gravity="center" android:layout_weight="1" android:background="@drawable/button_shape_two" android:gravity="center" android:paddingBottom="3sp" android:paddingTop="3sp" android:text="ASSIGN TASK" android:focusable="false" android:textColor="@android:color/white" android:textSize="12sp" android:textStyle="normal" /> <Button android:id="@+id/buttonViewTask" android:layout_width="0dp" android:layout_height="27dp" android:layout_gravity="center_vertical|center_horizontal" android:layout_marginLeft="3dp" android:layout_weight="1" android:background="@drawable/button_shape_one" android:gravity="center" android:paddingBottom="3sp" android:paddingTop="3sp" android:text="VIEW TASK" android:focusable="false" android:textColor="@android:color/white" android:textSize="12sp" android:textStyle="normal" /> </LinearLayout> </RelativeLayout> 

List_Group archivo xml –

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp" android:background="#000000"> <TextView android:id="@+id/lblListHeader" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" android:textSize="17dp" android:textColor="#f9f93d" /> </LinearLayout> 

Aquí está mi clase ExpandableListAdapter

 public class ExpandableListAdapter extends BaseExpandableListAdapter { private Context _context; private List<String> _listDataHeader; // header titles // child data in format of header title, child title private HashMap<String, List<String>> _listDataChild; Context context; public ExpandableListAdapter(Context context, List<String> listDataHeader, HashMap<String, List<String>> listChildData) { this._context = context; this._listDataHeader = listDataHeader; this._listDataChild = listChildData; } public ExpandableListAdapter (My_Project my_Project, List createGroupList, int listGroup, String[] strings, int[] is, List createChildList, int childItem, String[] strings2, int[] is2) { // TODO Auto-generated constructor stub } @Override public Object getChild(int groupPosition, int childPosition) { //this.get(groupPosition).getChildren().get(childPosition); String strchildPosition = this._listDataChild.get(this._listDataHeader.get(groupPosition)).get(childPosition); System.out.println("Child Position =" + strchildPosition); return this._listDataChild.get(this._listDataHeader.get(groupPosition)) .get(childPosition); } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { final String childText = (String) getChild(groupPosition, childPosition); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) this._context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.child_item, null); } TextView txtListChild = (TextView) convertView.findViewById(R.id.TextView_Projectdetails); TextView txtOneListChild = (TextView)convertView.findViewById(R.id.textOne); TextView txtTwoListChild = (TextView)convertView.findViewById(R.id.textTwo); txtListChild.setText(childText); txtOneListChild.setText(childText); txtTwoListChild.setText(childText); Button btnAssgnTask = (Button)convertView.findViewById(R.id.button_EditedTask); btnAssgnTask.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //Intent i=new Intent(context,Assign_Task.class); //StartElementListener() } }); Button btnViewTask = (Button)convertView.findViewById(R.id.buttonViewTask); return convertView; } @Override public int getChildrenCount(int groupPosition) { return this._listDataChild.get(this._listDataHeader.get(groupPosition)) .size(); } @Override public Object getGroup(int groupPosition) { return this._listDataHeader.get(groupPosition); } @Override public int getGroupCount() { return this._listDataHeader.size(); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { String headerTitle = (String) getGroup(groupPosition); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) this._context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.list_group, null); } TextView lblListHeader = (TextView) convertView .findViewById(R.id.lblListHeader); lblListHeader.setTypeface(null, Typeface.BOLD); lblListHeader.setText(headerTitle); return convertView; } @Override public boolean hasStableIds() { return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } } 

Aquí está mi código de actividad –

 public class My_Project extends ExpandableListActivity { expListView = (ExpandableListView) findViewById(android.R.id.list); expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { return false; } }); expListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { Toast.makeText(getApplicationContext(), dtrProjectNAmeSize.length + " Expanded", Toast.LENGTH_SHORT).show(); } }); expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { Toast.makeText(getApplicationContext(), dtrProjectNAmeSize.length + " Collapsed", Toast.LENGTH_SHORT).show(); } }); expListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub int cp = (int) mAdapter.getChildId(groupPosition, childPosition); if(cp == 3) { switch (cp) { case 3: break; } } return false; } }); mAdapter = new SimpleExpandableListAdapter( this, groupData, R.layout.list_group, new String[] { Project_Name }, new int[] {R.id.lblListHeader }, childData, R.layout.child_item, new String[] { Project_Date_Created , Project_End_Date , Project_Is_Active}, new int[] { R.id.TextView_Projectdetails , R.id.textOne , R.id.textTwo } ); expListView.setAdapter(mAdapter); } } 

2 Solutions collect form web for “Cómo manejar el evento de clic de niño en Expandablelistview en Android?”

Puede establecer setOnChildClickListener de chid del listview expandible entonces puede ir a la otra actividad de acuerdo al valor de la lista de array que se utilizan para crear listview expandible.

  menuExpandableListView .setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick( ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { GoCategory(mainMenusList.get(groupPosition) .getPagesList().get(childPosition)); return false; } }); 

O puedes hacerlo

 @Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { Page page =(Page) getChild(groupPosition, childPosition); convertView = inflater.inflate(R.layout.child_list_layout, null); Button button1=(Button)convertView.findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Your code here.... } }); return convertView; } 

¿Qué estás tratando de hacer aquí?

 expListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub int cp = (int) mAdapter.getChildId(groupPosition, childPosition); if(cp == 3) { switch (cp) { case 3: break; } } return false; } }); 

Este oyente está utilizando para el elemento secundario, haga clic en startActivity(intent) en esta parte del código.

  • Problema de renderización de ViewPager personalizado en ciertos dispositivos:
  • Empuje el contenido excepto alguna vista cuando se muestra el teclado
  • Arquitectura de la GUI de Android - relación entre Superficie / vista / ventana / lienzo
  • Cómo iniciar una actividad desde la vista personalizada
  • Manejo de la rotación de la pantalla en WebView
  • Mantener un seguimiento de la vista agregada a WindowManager (no función findViewById ()?)
  • Android toggleButton.setOnText y .invalidate no actualiza el texto
  • Android: ExpandableListView indicador de grupo dibujable que es grande cuando uso mi propio icono
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.