public class MainActivity extends AppCompatActivity {
ListView list_view;
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list_view = (ListView) findViewById(R.id.list_views);
list.add("Data 1");
list.add("Data 2");
list.add("Data 3");
list.add("Data 4");
list.add("Data 5");
adapter =new ArrayAdapter<String>(this, R.layout.list_item,list);
list_view.setAdapter(adapter);
list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int i, long l) {
v.setBackgroundColor(Color.RED);
}
});
}
}
答案 0 :(得分:0)
将当前应用的颜色保存在变量中。
int currentColor = Color.white; // make this a class variable
int color = currentColor == white ? Color.RED : Color.Blue;
v.setBackgroundColor(color);
PS这是一个伪代码,只是用来解释这个想法
答案 1 :(得分:0)
有两种方法可以做到这一点,最简单的一种是您可以在应用红色之前检查背景颜色是否有问题
list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int i, long l) {
if (R.color.blue === ((ColorDrawable) v.getBackground()).getColor()) {
v.setBackgroundColor(Color.RED);
}else{
v.setBackgroundColor(Color.BLUE);
}
}
});