我希望能夠根據其類型以不同顏色顯示Listview的行。所以我使用下面的代碼創建了一個自定義適配器。調用Custom SimpleCursorAdapter時行不刷新
startManagingCursor(cursor);
Lectures_Adapter adapter = new Lectures_Adapter(this,R.layout.menu_item,cursor,FROM,TO);
menuList.setAdapter(adapter);
定製適配器使用此代碼 -
public Lectures_Adapter(Context context, int layout, Cursor c, String[] from,int[] to) {
super(context, layout, c, from, to);
this.appContext=context;
this.layout=layout;
this.mycursor=c;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position > 0)
{
RelativeLayout rowFill = (RelativeLayout) convertView.findViewById(R.id.rowFill);
String title = mycursor.getString(0);
int myColor = 0;
int myPos = title.indexOf("Nurse");
int myPos2 = title.indexOf("masterclass");
if (myPos >= 0)
{
myColor = Color.parseColor("#99FF66");
}
else if (myPos2 >= 0)
{
myColor = Color.parseColor("#FF99FF");
}
else
{
myColor = Color.parseColor("#FFFF66");
}
convertView.findViewById(R.id.rowFill).setBackgroundColor(myColor);
}
return view;
}
這一切工作正常,並顯示排在其相應的顏色,但在第一頁是始終不變(除了第一行),當我選擇一行並返回到Listview,更改不適用。我如何讓ListView不斷保持自定義適配器設置?
put myListView.invalidateViews();在你的活動方法(UI)中。例如在'myListView.setOnItemClickListener(新OnItemClickListener(){ \t \t \t @Override \t \t \t公共無效onItemClick(適配器視圖>父,瀏覽視圖, \t \t \t \t \t INT位置,長ID){ \t \t \t \t myListView.invalidateViews(); \t \t \t} \t \t});' – breceivemail
我編輯了我的答案 – breceivemail