我正在向自定义 ArrayAdapter 添加项目,然后尝试找到新添加的行以对其进行聚焦(更改背景颜色等)。
只有在我无法弄清楚事件发生的顺序时。
我的代码执行以下操作:
MainActivity 收到一个addObject()
事件。它调用将创建并返回 newObject 的模型:
adapter.add(newObject);
在适配器getView()
中,适配器将分配(创建或重用)一个行布局并设置它的标签:
row.setTag(newObject);
然后回到 MainActivity addObject() 事件方法:
adaptersListview.findViewWithTag(newObject);
adapter.getView()
只有当我在 中和之后放入消息时findViewWithTag
,才会在(设置标签)findViewWithTag
之前执行。
这是因为适配器可能会在另一个线程(UiThread)上运行它吗?
所以永远不会工作。
如何确保适配器在我之前完成了它?getView
getView
findViewWithTag
getView
findViewWithTag