Серфить в двух списках и потерял сосредоточенность

У меня один фрагмент активности включает два списка фрагментов. Я использую D-pad для перемещения по спискам. Например, когда я нажимаю на listview1-> tv, в listview2 отображаются телеканалы. Когда я нажимаю listview1-> movie, в listview2 показывается список фильмов и так далее.

Так что это моя проблема: когда я нажимаю listview1-> item3 (item3 теперь выделен селектором) и перехожу к listview2 и использую d-pad вверх / вниз для перемещения по элементам, тогда я возвращаюсь к listview1 с помощью клавиши со стрелкой влево, Я ожидаю возвращения к списку-> item3. Но дело обстоит не так, и я не могу сосредоточиться на элементе ведьмы в listview1 (выделено)

Я не могу обработать выделенный элемент, мне нужно вернуться к последнему выбранному элементу (getListView().getSelectedItemPosition()) имеет истинный номер позиции предмета, но выделено / подсвечено не в истинном / последнем положении)

Android 2.3.4

Я использовал эти методы, но никто не работал

getListView().setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean focused) {
        // TODO Auto-generated method stub
        if (!focused) allowfocus=true;
        if (focused && allowfocus){
            getListView().setSelection(PosHolder.MENU_LAST_POS);
                    OR 
            getListView().setSelection(getListView().getSelectedItemPosition());
                    OR
            getListView().getSelectedView().setSelected(true);
                    OR
            getListView().getSelectedView().requestFocus();

            Toast.makeText(getActivity(), "Menu Got Focused:"+ getListView().getSelectedItemPosition(), Toast.LENGTH_SHORT).show();
        }
    }
});

1 ответ

Для меня работало создание customListView, который наследуется от исходного ListView, а затем переопределение события OnFocusChange для обработки вашего фокуса.

Другие вопросы по тегам