我有一个数据库中的项目列表,其值为0或2。我使用了一个简单的适配器和一个具有列表视图的活动。现在我想改变每个项目的背景颜色以反映它的值,即我希望值为0的项目的背景为绿色,值为1的项目为黄色,值为2的项目为红色。我该怎么做?我的适配器和活动目前有黑色背景。
答案 0 :(得分:1)
您可以检查getView()
中的位置值,并为该索引行提供所需的背景颜色。
答案 1 :(得分:-1)
在适配器的getView()内部进行检查,如下所示
if(item.getValue()==0)
v.setBackgroundColor(Color.GREEN);
else if(item.getValue()==1)
v.setBackgroundColor(Color.YELLOW);
else
v.setBackgroundColor(Color.RED);
item
这是您的对象,getValue()
是您的值为0,1,2的地方。
答案 2 :(得分:-1)
您需要为列表视图的单个列表项创建XML布局文件。 然后创建一个适配器类。其中膨胀那个xml视图。 在getView()方法的adpter中检查你的逻辑。
这是我的adpter类getView()..
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.home_list_item, null);
holder = new ViewHolder();
holder.mTxtContactName = (TextView) convertView.findViewById(R.id.txtContactName);
holder.mTxtContactNumber = (TextView) convertView.findViewById(R.id.txtContactNumber);
holder.mTxtContactAdd = (TextView) convertView.findViewById(R.id.txtContactAddress);
holder.mImgCall = (ImageButton) convertView.findViewById(R.id.imgCall);
holder.mImgSms = (ImageButton) convertView.findViewById(R.id.imgSms);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.mTxtContactName.setText(list.get(position).getContactName());
holder.mTxtContactNumber.setText(list.get(position).getContactNumber());
holder.mTxtContactAdd.setText(list.get(position).getContactAdd());
holder.mImgSms.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("con", "SMS");
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+list.get(position).getContactNumber()));
context.startActivity(smsIntent);
}
});
holder.mImgCall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel://"+list.get(position).getContactNumber()));
context.startActivity(callIntent);
}
});
return convertView;
}
static class ViewHolder {
TextView mTxtContactName;
TextView mTxtContactNumber;
TextView mTxtContactAdd;
ImageButton mImgCall;
ImageButton mImgSms;
}