1

我试图更改列表视图中的文本颜色,该列表视图显示我从数据库中的条目。问题是它显示不可见的文本(或者根本不显示任何内容。只有在此列表中分隔我的条目的行)但是在单击条目后它会向我显示此条目的详细信息。在不尝试使用 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);

我怎样才能将其更改为正常工作?

4

2 回答 2

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;
}
于 2013-03-26T16:34:48.217 回答
0

换线

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

称呼

conAdapter.setViewBinder(SimpleCursorAdapter.ViewBinder)

setListAdapter(conAdapter); // set adapter
于 2016-10-26T11:37:39.330 回答