这真是一个奇怪的问题,我遇到了几个谷歌搜索,这些搜索都是徒劳的。
我有一个列表视图,在用户点击项目时应该更改所选的项目颜色。
这篇帖子帮我改变了列表视图中选择的项目颜色。现在,我可以在单击项目时更改颜色。但是,如果我滚动列表视图,颜色会跳出选择。
https://stackoverflow.com/a/12080202/1657093
如果选择了一个项目,例如说第一行的列表视图项目也会选择最后一个项目,同时滚动项目颜色继续移动到我从未选择过的项目。
这是列表视图
<ListView
android:id="@+id/loadedlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/horizontalScroll"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Title"
android:layout_toLeftOf="@+id/sidepanel"
android:scrollingCache="false">
</ListView>
我使用数组适配器填充列表视图
ringlist.setAdapter(new ArrayAdapter
(这一点,android.R.layout.simple_list_item_1,环));
并在点击方法上使用列表视图来设置颜色
ringlist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos,long id) {
// TODO Auto-generated method stub
try{
String con;
String s = ringlist.getItemAtPosition(pos).toString();
con = s.toLowerCase();
String selectedFromList = con;
int resId = getResources().getIdentifier(selectedFromList, "raw",
"com.example.android");
}
if (row != null) {
row.setBackgroundColor(Color.BLACK);
}
row = view;
view.setBackgroundColor(Color.GREEN);
}
}
});
上面的代码完成了这项工作,但滚动列表出了问题
请告知。答案 0 :(得分:0)
这是android中Listview的常见问题。 当我们在向下或向上滚动后在Listview项目中使用复选框/单选按钮时,所选位置会在某些不同的位置发生变化。 到目前为止,唯一的解决方案是,我们需要在arraylist(或任何你感到舒适的结构)中保持所选位置。 当您向上/向下滚动列表视图时,会调用getview。 因此,在getview()中编写代码,以便从arraylist中选择复选框项。 也不要在getview中为convertview使用if-else条件。
答案 1 :(得分:0)
在onItemClick()方法中存储集合或数组中的单击/选定位置。编写代码以使用存储位置显示适配器的getview()方法中的单击/选定项目。