Hallo Alles Ich habe eine erweiterbare Listenansicht in meiner Anwendung, wo ich Radio Button in der Kindansicht dynamisch im Adapter generieren. Ich habe eine Anforderung an die setOnChildClickListener
in der erweiterbaren Listenansicht. Leider wird es wegen der Radioknöpfe nicht ausgelöst. Ich habe versucht, setFocusable/setclickable
im dynamisch generierten Optionsfeld auf false gesetzt werden. wenn ich das tue, wird die setOnChildClickListener
gefeuert. Aber ich kann einzelne Radio-Buttons nicht auswählen. Also hat keiner geholfen. Kann mir bitte jemand dabei helfen? Bitte beachten Sie meine Adapter Klassenmethode,setOnChildClickListener nicht für ExpandableListView ausgelöst
Das ist mein Adapter Methode
@Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
LayoutInflater infalInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.expandable_child_radio_layout, null);
RadioGroup radioGroup = (RadioGroup) convertView.findViewById(R.id.radio_group1);
radioGroup.setFocusable(false);
final RadioButton[] rb = new RadioButton[listDataChild.get(this.listOptionsHeader.get(groupPosition)).size()];
radioGroup.setOrientation(RadioGroup.VERTICAL);
for (int i = 0; i < listDataChild.get(this.listOptionsHeader.get(groupPosition)).size(); i++) {
rb[i] = new RadioButton(context);
rb[0].setChecked(true);
final String childText = (String) getChild(groupPosition, i);
rb[i].setText(childText);
rb[i].setId(i + 100);
rb[i].setTag("radio-child " + childText);
fontUtils.changeFontOfRadioButtontoOpenSansRegular(rb[i]);
rb[i].setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getResources().getDimension(R.dimen.letter_small));
radioGroup.addView(rb[i]);
rb[i].setFocusable(false);
}
return convertView;
}
Dieses Layout mein Kind ist XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="left"
android:layoutDirection="ltr"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="20dp">
<RadioGroup
android:id="@+id/radio_group1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</RadioGroup>
</LinearLayout>
</LinearLayout>
Dies ist die onClick Methode, die ich in meiner Haupttätigkeit Klasse verwendet haben .
ich denke, hinzufügen können Sie Hörer für childview 'mExpandableListView.setOnChildClickListener anzuwenden vergessen (diese); ' –
Wenn es nicht ausgelöst wird post Code mit dem Listener vielleicht tun Sie es falsch und das Problem ist nicht mit Schaltflächen, und auch die Dokumente beschränken die Verwendung von Höhe wrap_content für ExListView und es ist das übergeordnete Layout zur gleichen Zeit, sollten Sie angeben die Höhe in xml Layout – Rainmaker
@HarshadPrajapati ich hav e hat tatsächlich den Listener in meiner Hauptaktivitätsklasse verwendet. – DRayen