Android:在ListView中处理CheckBox

时间:2012-12-03 06:50:15

标签: java android checkbox android-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);

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

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

如何在我的java程序中使用选中的sale_id访问checkboxes绑定?

3 个答案:

答案 0 :(得分:1)

使用

android.R.layout.simple_list_item_multiple_choice

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我已附加代码以获取适用于多重复选框的列表视图..

public class MultiChoiceActivity extends Activity {

String [] choice = {" 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);

}

Refernce Link