我正在为android制作应用程序。我有一个Activity,里面有两个fragmentList。向左或向右移动DPAD时,我想控制您在下面的片段列表中的位置。例如,想要在DPAD上的siguiende按下Right的第8位转到第一个片段列表的第4位。
尝试更好地解释:
我正在申请GoogleTV,因此键盘处理非常重要。我有两个带有项目的片段列表。 OnItemSelectedListener我正在使用,以便当一个项目具有焦点时,也按下。当fragmentlist1改变位置时,fragmentList2改变。当我在FragmentList2中的第3项时,我离开了键脉冲。我想返回fragmentLis1的第1项。默认值为fragmentList1的第3项。
添加了片段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;
}
}
会像Fragmentlists之间的nextfocusleft吗?
提前致谢。
答案 0 :(得分:0)
在Activity中,我将为FragmentList1中的位置创建一个成员变量,并使用可以处理任何默认值或特殊业务逻辑的getter函数对其进行包装。
然后,我将创建一个onKeyUp侦听器,如果我从FragmentList2中检测到LEFT,则拦截它并根据需要进行修改。