0

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

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

我正在尝试的可能吗?如果是,我在哪里称呼它?

回答:

所以似乎这对我不起作用的原因是因为我手动突出显示行视图中的视图并且它还没有被实例化(或类似的东西)。

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

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

编辑:

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

4

1 回答 1

0

根据之前的评论:

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

于 2013-08-20T22:41:24.327 回答