从参考教程中,您有
SeparatedListAdapter adapter = new SeparatedListAdapter(this);
adapter.addSection("Array test", new ArrayAdapter<String>(this,
R.layout.list_item, new String[] { "First item", "Item two" }));
adapter.addSection("Security", new SimpleAdapter(this, security, R.layout.list_complex,
new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));
ListView list = new ListView(this);
list.setAdapter(adapter);
this.setContentView(list);
获取 TextView 的句柄,然后从该句柄设置其颜色。您需要在代码中以可运行的 b/c 将命令发布到消息队列中,此时 ListView 尚未呈现适配器指向的 TextView(这将在 OnCreate 退出后的某个时间发生)。
list.Post(() =>
{
TextView tv = list.FindViewById<TextView>(R.id.tvContact);
tv.SetTextColor(Color.Red);
});
我认为您不需要使用列表来限定 FindViewById。b/c 你设置内容视图
this.setContentView(list);
(上面是 MonoDroid 的 C# 代码,可轻松转换为 Java)。
在 Java/Android 中发布可运行文件:如何在 Android 中运行可运行线程?
在 runnables 中发布会将代码放入消息队列中,这是 Android 中一个关键的、未记录的构造。每当您在修改视图时从活动中获得空引用时,请尝试将此作为第一步。