Я пишу довольно сложную ListView
, которая (помимо прочего) требует форматирования представлений в каждом элементе списка.
Чтобы дать мне полный контроль над тем, как представления связаны в каждом элементе списка,Я подклассифицировал CursorAdapter
следующим образом:
public class MyAdapter extends CursorAdapter {
public final LayoutInflater mInflater;
public MyAdapter(Context context, Cursor c) {
super(context, c);
mInflater = LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
final ToggleButton tButton = (ToggleButton) view.findViewById(R.id.tbutton);
tButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// start activity based on a pending intent
}
});
}
}
Проблема заключается в том, что мой ToggleButton
щелчок-прослушиватель должен начать действие на основе ожидающего намерения.Ожидающее намерение создается в действии, которое использует этот настроенный адаптер.
Я знаю, что мог бы использовать SimpleCursorAdapter
в основном Activity
с ViewBinder
, чтобы запуск намерения толькопонадобиться от основного Activity
.Но SimpleCursorAdapter
не совсем правильно, так как я не отображаю столбцы прямо в представления.
Однако, альтернатива, которую я здесь имею, предлагает доступ к основным данным Activity
из подкласса курсора.Я чувствую, что должен быть лучший способ разработать приложение.