studio personalizar geocoder custom color cambiar bar android expandablelistview

personalizar - ratingbar android color



ExpandableListView OnChildClickListener no funciona (3)

Tengo mi problema con mi ListView Expandible en mi aplicación de Android

este mi código

package proyek.akhir; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupCollapseListener; import android.widget.ExpandableListView.OnGroupExpandListener; import android.widget.Toast; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.TextView; public class list_tempat extends Activity { private List<String> groupData; private List<List<String>> childrenData; static String asalfromList ; protected static final Object[] String = null; static String l1 ; private void loadData() { groupData = new ArrayList<String>(); groupData.add("Group 1"); groupData.add("Group 2"); groupData.add("Group 3"); childrenData = new ArrayList<List<String>>(); List<String> sub1 = new ArrayList<String>(); sub1.add("G1 Item 1"); sub1.add("G1 Item 2"); childrenData.add(sub1); List<String> sub2 = new ArrayList<String>(); sub2.add("G2 Item 1"); sub2.add("G2 Item 2"); sub2.add("G2 Item 3"); sub2.add("G2 Item 4"); childrenData.add(sub2); List<String> sub3 = new ArrayList<String>(); sub3.add("G3 Item 1"); sub3.add("G3 Item 2"); sub3.add("G3 Item 3"); sub3.add("G3 Item 4"); sub3.add("G3 Item 5"); childrenData.add(sub3); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.expandable_list_view); l1 = "l1"; loadData(); ExpandableListView expandableListView = (ExpandableListView)findViewById(R.id.expandable_list_view); expandableListView.setAdapter(new ExpandableAdapter()); expandableListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View clickedView, int groupPosition, long groupId) { return false; } }); expandableListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView expandablelistview, View clickedView, int groupPosition, int childPosition, long childId) { Intent i = getIntent(); //asalfromList =(String) ((TextView) view).getText(); Intent intent = new Intent(list_tempat.this, ruteangkot.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("l1", String); intent.putExtra("textAsal",asalfromList ); if (i.getStringExtra("tujuan") != null){ intent.putExtra("textTujuan",list_tempat2.tujuanfromList ); System.out.println("adaan"); }else{ System.out.println("eweh"); intent.putExtra("textTujuan",""); } menuutama.mu = ""; list_tempat2.l2 = ""; startActivity(intent); finish(); System.out.println("wkwkwk"); showMessage("hahasu" + ((TextView)clickedView).getText()); return false; } }); expandableListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { } }); expandableListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { } }); } private class ExpandableAdapter extends BaseExpandableListAdapter { @Override public Object getChild(int groupPosition, int childPosition) { return childrenData.get(groupPosition).get(childPosition); } @Override public long getChildId(int groupPosition, int childPosition) { return 0; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView text = null; if (convertView != null) { text = (TextView)convertView; text.setText(childrenData.get(groupPosition).get(childPosition)); } else { text = createView(childrenData.get(groupPosition).get(childPosition)); } return text; } @Override public int getChildrenCount(int groupPosition) { return childrenData.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { return groupData.get(groupPosition); } @Override public int getGroupCount() { return groupData.size(); } @Override public long getGroupId(int groupPosition) { return 0; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView text = null; if (convertView != null) { text = (TextView)convertView; text.setText(groupData.get(groupPosition)); } else { text = createView(groupData.get(groupPosition)); } return text; } @Override public boolean hasStableIds() { return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } private TextView createView(String content) { AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 38); TextView text = new TextView(list_tempat.this); text.setLayoutParams(layoutParams); text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); text.setPadding(40, 0, 0, 0); text.setText(content); return text; } } private void showMessage(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } }

¿El expandableListView.setOnChildClickListener no funciona? Quiero capturar los datos de esa lista de niños, ¿alguien puede ayudarme? Gracias


¡Debes activar que tus hijos sean seleccionables! Para hacer eso, devuelva verdadero en su (anulación) el método de selección de clase de isChildSelectable ExpandableListAdapter .

@Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; }


Si está utilizando OnChildClickListener y / o OnGroupClickListener entonces cada vista secundaria dentro de las filas del grupo y las filas infantiles no debe ser enfocable. Por ejemplo, si tiene una casilla de verificación en el hijo, configure la casilla de verificación para que no se pueda enfocar:

checkBox.setFocusable(false);

Además, si configura el convertView de grupo / hijo para hacer clic en él, evitará que los clics lleguen a OnChildClickListener y OnGroupClickListener . Si este es el caso, vaya a getGroupView , en su expListViewAdapter , y establezca:

convertView.setClickable(false);

Luego vaya a getChildView , en su expListViewAdapter , y establezca:

convertView.setClickable(false);

Después de esto, tanto OnGroupClickListener como OnChildClickListener deberían funcionar; se le concedió establecer los escuchas en primer lugar (utilizando expandableListView.setOnGroupClickListener(...) y expandableListView.setOnChildClickListener(...) )


Tienes que cambiar el valor de retorno es verdadero en lugar de falso. Haga que la vista de su hijo sea seleccionable.

Utilizar esta:

@Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; }

En lugar de:

@Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; }