我有一个列表视图,列表视图中的每个项目都包含一个复选框。我的问题是我想一次只选择一个复选框。另一个问题是,当我按顺序3选择一个复选框,然后当我向上和向后滚动时,复选框以不同的顺序5或8检查 你能帮我解决这个问题吗?
答案 0 :(得分:0)
将列表视图设置为:
lvSelectLocation.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
ArrayAdapter<String> adptr = new ArrayAdapter<String>(Location.this, android.R.layout.simple_list_item_single_choice, locationList);
仅处理onItem Click:
lvSelectLocation.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Selected = arg0.getItemAtPosition(arg2).toString();
}
});
Android会自动回收listview视图,因此滚动时,所选选项会循环显示。为此,您必须将选定的列表项设置为ArrayList。
答案 1 :(得分:0)
您可以使用API演示来了解此实现的最佳方式。
看看this。
列表视图中有CHOCIE_MODE
选项,您可以将其设置为CHOCIE_MODE_SINGLE
。简单的代码是这样的 -
public class List10 extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, GENRES));
final ListView listView = getListView();
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
private static final String[] GENRES = new String[] {
"Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama",
"Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller"
};
}