无法仅在列表视图中设置一个复选框

时间:2015-07-27 05:35:34

标签: android listview checkbox

我有一个列表视图,列表视图中的每个项目都包含一个复选框。我的问题是我想一次只选择一个复选框。另一个问题是,当我按顺序3选择一个复选框,然后当我向上和向后滚动时,复选框以不同的顺序5或8检查 你能帮我解决这个问题吗?

2 个答案:

答案 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"
    };
}