У меня есть расширяемый список. Я использую пользовательский адаптер для загрузки собственного макета .xml. В каждой группе есть переключатель. Я не знаю, сколько групп будет отображаться. Теперь мне интересно, как динамически добавлять слушателя к каждому коммутатору, чтобы реагировать на изменения.
Активность ExpandableListView:
public class ExpandableListView extends Activity {
private MyCustomAdapter adapter;
private ExpandableListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_layout);
initViews();
}
private void initViews() {
listView = (ExpandableListView) findViewById(R.id.foo);
adapter = new MyCustomAdapter(this, data); // my custom adapter
listView.setAdapter(adapter);
//...
}
//...
}
Мой пользовательский адаптер
public class MyCustomAdapter extends BaseExpandableListAdapter {
@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); // load layout with switch
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.myTextView;
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
return convertView;
}
// ...
}
list_group.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="wrap_content"
android:padding="8dp"
android:background="#000000">
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:paddingLeft="20dp"
android:paddingRight="0dp"
android:paddingEnd="0dp"
android:paddingStart="20dp"
android:textSize="17sp" />
<Switch
android:id="@+id/mySwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:focusable="false"
android:checked="true"
/>
</RelativeLayout>
Как я могу добавить слушателя к каждому «mySwitch»? Возможно ли это в ExpandableListView?
Спасибо!