Доступ к состоянию активности в подклассе CursorAdapter - PullRequest
1 голос
/ 17 ноября 2011

Я пишу довольно сложную 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 из подкласса курсора.Я чувствую, что должен быть лучший способ разработать приложение.

1 Ответ

0 голосов
/ 18 ноября 2011

Подсказка из демонстраций API - в частности, EfficientAdapter, я объявил подкласс CursorAdapter как внутренний класс моей деятельности.

Это позволяет избежать передачи ожидающего намерения за пределы основной деятельности..

Источник: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...