更改特定列表视图项的颜色

时间:2014-08-16 18:55:09

标签: android android-listview

我需要更改列表视图中某些特定项目的文本颜色。

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 函数中

3 个答案:

答案 0 :(得分:3)

您需要实现自定义适配器,从BaseAdapter类扩展,并在getView方法中更改颜色

答案 1 :(得分:0)

您需要实现自定义适配器 您可以查看我在此开源项目中完成的实现

Customadapter in Fragment

  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)

我认为你有两个选择来完成它。

  1. 正常方式:使用自定义适配器并根据需要自定义每一行。为此,请查看here

  2. 丑陋的方式!:使用mListView.getFirstVisiblePosition()mListView.getLastVisiblePosition()以及mListView.getChildAt(...)获取对该行的引用,然后自定义它愿望。