Intereting Posts
Как отключить пейджинг, проверив пальцем в ViewPager, но все же сможете прокручивать программно? Определить, существует ли активность на текущем устройстве? Libjpeg-turbo для android Как загрузить видео на YouTube в Android? Android – в чем смысл StableID? Android Studio vs Eclipse + ADT Plugin? У указанного ребенка уже есть родитель. Вы должны сначала вызвать removeView () родителя ребенка Android Studio не генерирует zip-aligned apk Сообщения XMPP, потерянные на Android при переключении передачи данных (например, включение Wi-Fi, GSM <-> Wifi-переключатель) Для чего нужно использовать AccountManager для Android? Могу ли я настроить мой эмулятор Android, чтобы он быстро работал? Как использовать новый формат ограничений Android для уменьшения иерархии просмотра Как возможно, что приложение Google Fit измеряет количество шагов все время без отвода батареи? ActionBar setBackgroundDrawable () обнуление фона из Thread / Handler Android имитирует низкое сетевое подключение

ExpandableListView OnChildClickListener не работает

У меня есть проблема с моим расширяемым списком в моем приложении для Android

Это мой код

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(); } } 

ExpandableListView.setOnChildClickListener не работает, я хочу поймать данные из этого дочернего списка, кто-нибудь может мне помочь? благодаря

Solutions Collecting From Web of "ExpandableListView OnChildClickListener не работает"

Вы должны активировать, что ваши дети могут быть выбраны! Для этого верните true в свой (переопределенный) метод isChildSelectable класса ExpandableListAdapter .

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

Если вы используете OnChildClickListener и / или OnGroupClickListener то каждый дочерний вид в строках группы и дочерних строках не должен быть настраиваемым. Например, если у вас есть флажок в дочернем элементе, установите этот флажок, чтобы он не был сфокусирован:

 checkBox.setFocusable(false); 

Кроме того, если вы настроите клик для группы / ребенка convertView, это не позволит кликам добраться до OnChildClickListener и OnGroupClickListener . Если это так, перейдите в getGroupView , в свой expListViewAdapter и установите:

 convertView.setClickable(false); 

Затем перейдите в getChildView , в свой expListViewAdapter , и установите:

 convertView.setClickable(false); 

После этого должны работать как OnGroupClickListener и OnChildClickListener – при OnChildClickListener вы сначала установите слушателей (используя expandableListView.setOnGroupClickListener(...) и expandableListView.setOnChildClickListener(...) )

Вы должны изменить возвращаемое значение true, а не false. Представьте, что ваш ребенок доступен для просмотра.

Использовать это:

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

Вместо:

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