我需要更改列表视图中某些特定项目的文本颜色。
lstdetails = (ListView) findViewById(R.id.lstdetails);
ListAdapter adapter = new SimpleAdapter(
Details.this, details_list,
R.layout.Details, new String[] {
"lecture_key", "date",
"total_lect_int", "attendance" },
new int[] { R.id.tvKey, R.id.tvdate,
R.id.tvtotallect, R.id.tvattendance });
lstdetails.setAdapter(adapter);
需要根据 R.id.tvattendance
的值更改文字颜色上面的代码段位于扩展 AsyncTask
的类的 onPostExecute 函数中答案 0 :(得分:3)
您需要实现自定义适配器,从BaseAdapter
类扩展,并在getView
方法中更改颜色
答案 1 :(得分:0)
您需要实现自定义适配器 您可以查看我在此开源项目中完成的实现
private class listviewAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int value= listAdapter.get(position); // or whatever data type is your value
if (value==0){
//change color of the textview at runtime here
}else{
//or some other color
}
}
}
i am using this inside a fragment and it works perfectly
答案 2 :(得分:0)
我认为你有两个选择来完成它。
正常方式:使用自定义适配器并根据需要自定义每一行。为此,请查看here
丑陋的方式!:使用mListView.getFirstVisiblePosition()
和mListView.getLastVisiblePosition()
以及mListView.getChildAt(...)
获取对该行的引用,然后自定义它愿望。