如何在Android上的ListView中检查复选框状态

时间:2011-11-28 01:49:02

标签: android android-layout

我的代码上有一个带有复选框的列表视图,但我如何检查复选框的值是否可以? 我正在使用选项卡实现一个程序,其中一个选项卡带有带复选框的ListView,代码如下:

spec = tabHost.newTabSpec(OPTS_TAB_TAG).setIndicator("Options",
                  res.getDrawable(R.drawable.ic_tab_options))
              .setContent(new TabContentFactory() 
              {
                public View createTabContent(String arg0) 
                {

                        DbAdapter databaseManager = new DbAdapter(BusTrackerBetaActivity.this);
                        databaseManager.open();

                        List<String> BusLinesList = new ArrayList<String>();
                        BusLinesList = databaseManager.toStringList(databaseManager.getAllBusLines(), 1);

                        String[] BusLinesArray = BusLinesList.toArray(new String[BusLinesList.size()]);


                    databaseManager.close();

                    ListView ls1 = new ListView(BusTrackerBetaActivity.this); 
                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                            BusTrackerBetaActivity.this, 
                         android.R.layout.simple_list_item_multiple_choice,
                         BusLinesArray);
                     ls1.setAdapter(adapter); 
                     ls1.setOnCreateContextMenuListener(BusTrackerBetaActivity.this); 

                     ls1.setItemsCanFocus(false);
                     ls1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
                     return ls1;

                }

            });     

它工作正常,实际上我从一些例子中得到了实现列表的方法,但我的问题是:如何检查每个复选框的值(true或false)?

1 个答案:

答案 0 :(得分:1)

您可以使用ListView的{​​{1}}功能来完成此任务。它将返回一个getCheckedItemPositions对象,其中包含ListView中每个项目的已检查状态。循环遍历SparseBooleanArray以确定检查了哪些项目。

您需要在某处保留对SparseBooleanArray对象的引用,以便以后在需要确定选中的项目状态时轻松访问它。

ListView