0

我在 TabActivity 中有一个 ListView 和一个 ExpandableListView。我已经覆盖了 ListView 的 setOnItemClickListener。我有 2 个选项卡,一个使用 ListView,另一个使用 ExpandableListView。由于某种原因,我无法单击第一个 ListView 中的任何项目。如果我将选项卡更改为 ExpandableListView 然后返回到第一个选项卡,它将允许我像往常一样单击项目。关于为什么会发生这种情况的任何想法。是否有某种奇怪的焦点事情发生?

我将此作为我的代码的一部分:

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);

    listView = (ListView) findViewById(R.id.listview);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
                    onListItemClick(pos, id);
                    // return false;
                }
            });
}
4

2 回答 2

1

我现在也有同样的问题。如果我找到一个解决方案,我会发布一个。

不是我正在寻找的解决方案......但这是在此期间有效的解决方案。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    //lv is a reference to my ListView.
    lv.setSelection(position);

    return convertView;
}

请注意,这不是一个理想的解决方案,它只是似乎在 Android 版本 > 1.5 上始终如一地工作。(这就是我测试的)。

这里还有一点需要注意的是,您也在使用 onItemClickListener,这通常只响应模拟器上轨迹球或箭头键的使用。这可能是您不处理 onClick 事件的情况。我用一个典型的

于 2010-11-19T17:47:06.097 回答
0

我只是有同样的问题。TabActivity 调度的一些 ListView。我无法设置正确的,所以我将适配器中的“手动”OnItemClickListener附加到. 它只是在每个单元格上附加一个 OnClickListener。OnClickListenerconvertView

像这样 :

convertView.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // What you want to do with this "item click"
        // make an Intent to start something else or whatever
    }
});

当然,您可以在 Adapter 方法中执行此操作(例如,在返回 convertView 之前):

public View getView(int position, View convertView, ViewGroup parent)

这在我的情况下有效,所以我希望它可以帮助你。

祝你好运

于 2011-01-25T01:10:56.820 回答