1

我正在为android制作一个应用程序。我有一个活动,其中有两个片段列表。当向左或向右移动 DPAD 时,我想控制您在下面的 Fragmentlist 中的位置。例如,想要在 DPAD 上的 siguiende press Right 的位置 8 处转到第一个 fragmentlist 的位置 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 的东西吗?

提前致谢。

4

1 回答 1

0

在 Activity 中,我会为 FragmentList1 中的位置创建一个成员变量,并用一个可以处理任何默认值或特殊业务逻辑的 getter 函数包装它。

然后,我将创建一个 onKeyUp 侦听器,如果我从 FragmentList2 检测到 LEFT,则拦截它并根据需要进行修改。

于 2011-11-04T14:56:24.233 回答