Android在ListAdapter中查找新添加的行

时间:2013-05-29 09:51:36

标签: android android-listview android-arrayadapter

我将项目添加到自定义ArrayAdapter,然后尝试查找新添加的行以对其进行聚焦,(更改背景颜色等)
只有我无法弄清楚事件发生的顺序 我的代码做了类似的事情:
MainActivity收到addObject()个事件。它调用Model,它将创建并返回newObject:

adapter.add(newObject);

在适配器getView()中,适配器将分配(创建或重用)行 - 布局并设置它的标记:

row.setTag(newObject);

然后回到MainActivity addObject()eventmethod:

adaptersListview.findViewWithTag(newObject);

只有当我在adapter.getView()findViewWithTag之后放置消息时,似乎findViewWithTaggetView(设置标记)之前执行。<登记/> 这是因为适配器可能会在另一个线程(UiThread)上运行它getView吗? 所以findViewWithTag永远不会奏效 在我getView之前,如何确保适配器已经完成了findViewWithTag

1 个答案:

答案 0 :(得分:0)

使用pskink的listView.post()为我工作了 我现在的代码如下:

listView.post(new Runnable() {
    public void run() {
        View rowToFocus = listView.findViewWithTag(newObject);
        ... more code ...
    }
});