在列表视图中显示来自数据库的条目的不可见文本颜色而不是白色

时间:2013-01-11 21:01:48

标签: android android-listview android-viewbinder

我试图在列表视图中更改文本颜色,列表视图显示数据库中的条目。问题是它显示不可见的文本(或者它根本不显示任何内容。只有在此列表中分隔我的条目的行)但是在点击条目后它会显示这些条目的详细信息。在不尝试使用ViewBinder的情况下显示效果很好。

// map each name to a TextView
    String[] from = new String[] { "event" };
    int[] to = new int[] { R.id.countryTextView };
    conAdapter = new SimpleCursorAdapter(Clock.this, R.layout.day_plan, null, from, to);



    SimpleCursorAdapter.ViewBinder binder = new SimpleCursorAdapter.ViewBinder() {

        @Override
        public boolean setViewValue(View view, Cursor cursor, int columnIndex){    
            int getIndex = cursor.getColumnIndex("colour");
            String empname = cursor.getString(getIndex);
           tv = (TextView)findViewById(R.id.countryTextView);

            tv.setTextColor(Color.WHITE);

           if(empname.equals("Green"))
            {                   
                tv.setTextColor(Color.WHITE);
                return true;
            } 
            return false;          
        }


    };
    setListAdapter(conAdapter); // set adapter
    ((SimpleCursorAdapter) conAdapter).setViewBinder(binder);

如何更改它才能正常工作?

2 个答案:

答案 0 :(得分:0)

您必须将文本添加到textview:

@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) 
{
    ((TextView) view).setTextColor(Colors.RED);
    ((TextView) view).setText(cursor.getString(cursor.getColumnIndex("YOUR-COLUMN-NAME")));
    return false;
}

答案 1 :(得分:0)

更改行

tv = (TextView)view.findViewById(R.id.countryTextView); // <-- add 'view.'

致电

conAdapter.setViewBinder(SimpleCursorAdapter.ViewBinder

setListAdapter(conAdapter); // set adapter