ListFragment установить начальный выбор - PullRequest
3 голосов
/ 14 сентября 2011

надеюсь, быстрый вопрос. Как бы я пошел об установке выбора по умолчанию на ListFragment. Я хочу, чтобы действие началось с уже выбранного верхнего элемента списка. Спасибо

1 Ответ

1 голос
/ 27 апреля 2013

Взято из официального примера в документации для Android (http://developer.android.com/guide/components/fragments.html#Example) и в демонстрациях API поддержки библиотеки:

В этом примере ListFragment использует getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); и getListView().setItemChecked(index, true); в ListFragment onActivityCreated метод, чтобы сделать элемент списка выбранным / выделенным, где index берется из локальной переменной, установленной по умолчанию на 0. Таким образом, у вас будет что-то вроде:

public static class TitlesFragment extends ListFragment {
    boolean mDualPane;
    int mCurCheckPosition = 0;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        // Populate list with our static array of titles.
        // (Replace this with your own list adapter stuff
        setListAdapter(new ArrayAdapter<String>(getActivity(),
            android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));

        if (savedInstanceState != null) {
            // Restore last state for checked position.
            mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
        }

        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        getListView().setItemChecked(mCurCheckPosition, true);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("curChoice", mCurCheckPosition);
    }

    // ... the rest of the ListFragment code ....
}

Посмотрите на этопример, на который я ссылаюсь вверху, и который должен привести вас в порядок!

...