单击第一个项目启动ListView

时间:2013-08-20 18:17:51

标签: android android-listview

我有一个由3个连续的ListView组成的布局。选择最左侧列表中的项目将启动第二个列表,依此类推。我正在尝试使用最左边列表中的第一个项目开始片段,并且因为需要很多逻辑,我试图触发点击而不是重做所有逻辑。我正在使用这个:

mListView.performItemClick(mListView, 0, mListView.getItemIdAtPosition(0));

我尝试的是什么?如果是的话,我在哪里称之为?

解答:

因此,似乎这对我不起作用的原因是因为我手动在行View中突出显示了一个View,但它还没有实例化(或类似的东西)。

我使用此代码在ListView布局后调用它:

mListView.post(new Runnable() {
        @Override
        public void run() {
            mListView.performItemClick(mListView, 0, mListView.getItemIdAtPosition(0));
        }
    });

编辑:

我有4个列表依赖于在实例化之前从之前的数据发送的数据,并且由于某些奇怪的原因,这个runnable方法仅适用于第一个列表。对于其他人,我使用了这个答案:https://stackoverflow.com/a/15399035/1549672。另外,奇怪的是,这不适用于第一个列表。所有列表几乎相同。

1 个答案:

答案 0 :(得分:0)

根据之前的评论:

您可以尝试在Runnable中换行选择更改并将其发布到ListView。这样,选择更改将不会发生,直到ListView(及其子项)被测量和布局等。确保在尝试更改选择之前设置适配器。