2013-02-16 94 views
0

我使用简单的游标适配器从列表视图中使用自定义布局获取所有记录。我想显示优先级文本视图来改变颜色根据文字,如红色,如果优先级高,绿色如果中等和黄色,如果low.is有一些办法做到这一点。我很新的android动态更改listview项目中的textview颜色

我的代码为listview

myList=(ListView) findViewById(R.id.listView1); 
    myAdapter.open(); 

    Cursor cursor = myAdapter.fetchAllView(); 

    startManagingCursor(cursor); 
String []from=new String[]{ DbAdapter.KEY_DESCRIPTION,DbAdapter.KEY_TITLE,DbAdapter.KEY_TASK_PRIORITY,DbAdapter.KEY_CATEGORY_NAME,DbAdapter.KEY_TIME,DbAdapter.KEY_DATE }; 
int[] to=new int[] { R.id.txtdescription,R.id.txtitem,R.id.txtPriority,R.id.txtcategory,R.id.txttimeOne,R.id.txtDateOne}; 
myCursorAdapter = new SimpleCursorAdapter(ListItems.this, R.layout.items, cursor,from, to); 
myList.setAdapter(myCursorAdapter); 

列表视图中工作正常,但如何编写代码来改变TextView的颜色列表视图项

在此先感谢

回答

0

您需要使用使用自定义光标适配器,因为你可以改变的事情dyanamically

这里我给一个例子,在bindView方法改变文本的颜色

public class MessageAdapter extends CursorAdapter { 
private Cursor mCursor; 
private Context mContext; 
private final LayoutInflater mInflater; 


public MessageAdapter(Context context, Cursor c) { 
    super(context, c); 
    mInflater=LayoutInflater.from(context); 
mContext=context; 
} 

@Override 
public void bindView(View view, Context context, Cursor cursor) { 

    TextView mobileNo=(TextView)view.findViewById(R.id.mobileNolistitem); 
    mobileNo.setText(cursor.getString(cursor.getColumnIndex(TextMeDBAdapter.KEY_MOBILENO))); 

    TextView frequency=(TextView)view.findViewById(R.id.frequencylistitem); 
    frequency.setText(cursor.getString(cursor.getColumnIndex(TextMeDBAdapter.KEY_FREQUENCY))); 

    TextView rowid=(TextView)view.findViewById(R.id.rowidlistitem); 
    rowid.setText(cursor.getString(cursor.getColumnIndex(TextMeDBAdapter.KEY_ID))); 

} 

@Override 
public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    final View view=mInflater.inflate(R.layout.message_list_item,parent,false); 
    return view; 
} 

}

+0

先生即时从SQlite数据库视图获取数据到列表视图,我想通过代码 – Shahid 2013-02-16 13:02:56

+0

更改优先textiew颜色先生我无法理解这个概念sorrrry – Shahid 2013-02-16 13:09:10

+0

而不是使用SimpleCusrsorAdapter使用扩展CursorAdapter的cusom adpater – 2013-02-16 14:47:19

0

我会考虑使用一个BaseAdapter。这会让你对每一行有更多的控制。

+0

是否有任何方法来根据文本 – Shahid 2013-02-16 12:51:02

+0

在列表视图项目中设置textview颜色Yup,使用BaseAdapter可以更改显示的视图以及对视图执行的操作。 – Ljdawson 2013-02-16 12:52:56

+0

先生从视图我的意思SQlite数据库视图我从中获取数据到列表视图 – Shahid 2013-02-16 12:58:23