GoogleTV: измените навигацию с помощью клавиатуры Dpad между двумя списками фрагментов - PullRequest
1 голос
/ 03 ноября 2011

Я делаю приложение для Android.У меня есть активность и в нем два фрагмента.При перемещении DPAD влево или вправо, я хочу контролировать, какую позицию вы располагаете в списке фрагментов ниже.Например, чтобы перейти к позиции 4 первого списка фрагментов в позиции 8 siguiende, нажмите «Право» на DPAD.

Попытайтесь объяснить лучше:

Я подаю заявку на GoogleTV,поэтому работа с клавиатурой очень важна.У меня есть два фрагмента с предметами.OnItemSelectedListener Я использую так, чтобы, когда элемент имел фокус, также нажимался.Когда фрагмент-список1 меняет положение, фрагмент-список2 меняется.Когда я нахожусь в пункте 3 в FragmentList2, то я оставил импульс клавиши.Я хочу вернуться к пункту 1 фрагмента Lis1.По умолчанию используется значение 3 для фрагмента списка 1.

Добавлен код фрагмента 1.

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    listView.setItemChecked(position, true);
    listView.setSelection(position);
    changeItem(position);   
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    listView.setItemChecked(position, true);
    listView.setSelection(position);
    changeItem(position);   
}

public void changeItem(int position){

    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();       
    Fragment1 f1 = new Fragment1();
    Fragment2 f2 = new Fragment2();

    switch (position) {
    case 0:
        transaction.replace(R.id.second_fragment, f1);
        transaction.addToBackStack(null);
        transaction.commit();
        break;
    case 1:
        transaction.replace(R.id.second_fragment, f2);
        transaction.addToBackStack(null);
        transaction.commit();
        break;
    default:
        break;
    }       
}

будет что-то вроде nextfocusleft между списками фрагментов?

Заранее спасибо.

1 Ответ

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

В Activity я бы создал переменную-член для позиции в FragmentList1 и обернул ее функцией-получателем, которая может обрабатывать любые значения по умолчанию или специальную бизнес-логику.

Затем я бы создал прослушиватель onKeyUp, и если я обнаружу ЛЕВЫЙ из FragmentList2, перехватю его и при необходимости изменим.

...