【发布时间】:2016-03-01 17:27:33
【问题描述】:
我想更改我的列表视图项的背景色,但是当我运行它时它不会更改并显示未找到该索引。 在这里我还检查了最后一个 if(sts.equals("true")) 条件是否匹配,但它也成功匹配,只是颜色没有改变,它调用 catch 部分并显示“获取数据时出错:null”
public void viewTask()
{
int i=0;
try{
Cursor c1 = myDB.rawQuery("SELECT * FROM "+TBName+" where Event_id= '" +Eid+ "'" , null);
String Data[] = new String[c1.getCount()+1];
if (c1 != null) {
c1.moveToFirst();
do {
Tname = c1.getString(c1.getColumnIndex("Task_name"));
sts= c1.getString(c1.getColumnIndex("Status"));
Data[i]=Tname;
item.add(Data[i]);
if(sts.equals("true"))
{
//Toast.makeText(getApplicationContext(),"Match",Toast.LENGTH_LONG).show();
lvProlist.getChildAt(i).setBackgroundColor(Color.GREEN);
}
i++;
}while(c1.moveToNext());
}
}
catch (Exception e) {
// TODO: handle exception
if(i>0){
Toast.makeText(getBaseContext(),
"Error in Fetching data: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getBaseContext(),
"PLEASE ADD TASK", Toast.LENGTH_LONG).show();
}
}
}
【问题讨论】:
-
lvProlist.getChildAt(i) 打印并检查其值
-
你能把全班都贴出来吗?
-
viewTask() 是从 onCreate() 方法调用的,我想在活动开始时在运行时更改颜色,因此如果状态为真,它将检查任务是否已完成或未使用状态然后可以将其更改为绿色背景。
标签: android listview android-listview background-color