我有一个由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。另外,奇怪的是,这不适用于第一个列表。所有列表几乎相同。
答案 0 :(得分:0)
根据之前的评论:
您可以尝试在Runnable
中换行选择更改并将其发布到ListView
。这样,选择更改将不会发生,直到ListView
(及其子项)被测量和布局等。确保在尝试更改选择之前设置适配器。