繁体   English   中英

Android:处理ListView中的CheckBox

[英]Android: Dealing with CheckBox in a ListView

我正在使用SimpleAdapter用以下代码填充ListView

    SimpleAdapter adapter = new SimpleAdapter(this,
            saleDriver.getOutstandings(clientId),
            R.layout.outstanding_list_row, new String[] { "sale_id",
                    "sale_date", "invoice_number", "sale_total", },
            new int[] { R.id.tt_check_box, R.id.tt_invoice_date,
                    R.id.tt_invoice_no, R.id.tt_invoice_tot });

    setListAdapter(adapter);

根据上面的代码,我在listview CheckBox (R.id.tt_check_box) sale_idCheckBox (R.id.tt_check_box)绑定了。 当我运行程序时, checkboxes值以文本形式显示在checkboxes右侧。 但我不想显示它们。

我的实际需要是,当用户选中checkboxes ,我需要将sale_id与它们绑定。

我如何在我的Java程序中访问sale_id与选中的checkboxes绑定?

采用

android.R.layout.simple_list_item_multiple_choice

覆盖SimpleAdapter中的getView()函数,并使用sale_id的值来选中/取消选中该复选框。 然后,将此自定义适配器用于您的列表。

编辑:在看另一个答案时,我的猜测是您需要的是“多项选择”解决方案,而不是这个(因为您需要找出选择项)。 此解决方案更多是根据现有数据显示复选框。 如果您仍然需要此代码,请告诉我,一旦我可以访问我的代码,我将发布示例代码。

我已附上代码以获得与多选复选框一起使用的listview。

public class MultiChoiceActivity extends Activity {

String [] choice = {“选择A”,“选择B”,“选择C”,“选择D”,“选择E”}};

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    choiceList = (ListView)findViewById(R.id.list);

    ArrayAdapter<String> adapter
    = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_multiple_choice, 
      choice);
    choiceList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    choiceList.setAdapter(adapter);

}

推荐连结

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM