在两个列表视图中冲浪并失去焦点

时间:2012-10-07 12:29:57

标签: focus google-tv listviewitem android-listfragment d-pad

我有一个片段活动包括两个列表片段。 我使用D-pad来浏览列表。 例如,当我点击 listview1-> tv 时,在 listview2 中显示电视频道 。当我点击 listview1->电影时,在 listview2 中显示电影列表等。

所以这是我的问题:当我点击 listview1-> item3 item3 现在由选择器突出显示)并转到 listview2 然后使用d-pad上/下来浏览项目然后我回到 listview1 ,通过左箭头键,我希望返回 listview-> 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 个答案:

答案 0 :(得分:1)

对我来说有用的是创建一个从原始ListView继承的customListView,然后覆盖OnFocusChange事件来处理你的焦点。