我在Android中使用ListView
实施了SimpleAdapter
。我已在getView
的{{1}}方法中设置了某些条件。
根据满意的条件,ListView每行中的SimpleAdapter
将变为红色,绿色,黄色或橙色。
我遇到的问题是,当我连续向上和向下滚动ListView时,我可以看到一些不满足条件的按钮也在改变颜色,最后所有按钮都有上面提到的颜色。
有人能告诉我哪里出错了。我的代码如下:
Buttons
答案 0 :(得分:0)
这取决于Listitems的重用。如果在if条件中更改背景:
if (list_details_from_db.get(position)
您必须在else条件下将其设置为默认背景。
//修改
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
/*final*/ View v = super.getView(position, convertView,
parent);
// Log.i("key values sub id in get view ",
// ""+key_names);
final TextView order_id = (TextView) v
.findViewById(R.id.order_id);
Log.i("Order id check from getview ", order_id
.getText().toString());
Button bt_waiter_id = (Button) v
.findViewById(R.id.bt_waiter_id);
Button placed_id = (Button) v
.findViewById(R.id.placed_id);
Button confirmed = (Button) v
.findViewById(R.id.confirmed);
Button prepared = (Button) v
.findViewById(R.id.prepared);
placed_id.setText("Your standard value");
confirmed.setText("Your standard value");
placed_id.setBackground(getResources()
.getDrawable(
R.drawable.your_standard_drawable));
confirmed.setBackground(getResources()
.getDrawable(
R.drawable.your_standard_drawable));
prepared.setBackground(getResources()
.getDrawable(
R.drawable.your_standard_drawable));
bt_waiter_id.setBackground(getResources()
.getDrawable(
R.drawable.your_standard_drawable));
bt_waiter_id.setText("your standard value");
//
//[...] Rest of your code
}