【发布时间】:2019-08-08 06:57:24
【问题描述】:
我正在使用 ArrayList 中的字符串填充列表视图。 单击列表视图项时,我想将背景颜色更改为绿色。 第一个问题,因为我无法更改被点击的项目。
点击一个项目后,我将它的索引添加到用户选择的项目列表中,当第一次加载列表视图时,我需要它来设置所有已选择的列表视图项目的背景颜色为绿色. 问题编号 2 - 我一直在尝试使用 for 循环执行此操作,但不知道如何引用列表视图中的特定项目来设置背景颜色!
基本上,我认为如果有人可以帮助我更改所选列表视图项的颜色,我应该能够做同样的事情,但在循环中保存所有 userFoodPref?
animalsNameList = new ArrayList<String>();
userFoodPref = new ArrayList<Integer>();
getUserSelection();
getAnimalNames();
// Create The Adapter with passing ArrayList as 3rd parameter
ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, animalsNameList);
// Set The Adapter
animalList.setAdapter(arrayAdapter);
// register onClickListener to handle click events on each item
animalList.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
// argument position gives the index of item which is clicked
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if(userFoodPref.contains(i)
){
userFoodPref.remove(i);}
else {
userFoodPref.add(i);
View item = animalList.getSelectedView();
item.setBackgroundColor(0x0000FF00);
}
String selectedAnimal=animalsNameList.get(i);
Toast.makeText(getApplicationContext(), "Animal Selected : "+selectedAnimal, Toast.LENGTH_LONG).show();
}
});
}
【问题讨论】:
-
那么,它对你有用吗?