【问题标题】:android listview with checkboxes , without list activity带有复选框的android listview,没有列表活动
【发布时间】:2014-02-22 17:59:15
【问题描述】:

如果不使用 listactivity,在一个简单的活动中,我如何在左侧有复选框,然后是右侧的文本,用于列表视图的每一行。如果我点击任何一行,则应选中该复选框。

【问题讨论】:

标签: android listview checkbox


【解决方案1】:

只需从 xml 中获取参考,使用:

listView=(ListView)findViewById(R.id.listView);

为您的活动设置适配器

ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, arr);
listView.setAdapter(adapter);

将选择模式设置为单选模式或多选模式

listVIew.setChoiceMode(ListView.Choice_Mode_Mutlitple);

现在您可以在列表视图中选择和取消选择复选框。

【讨论】:

  • 但这会给右边的复选框,因为我需要它在左边
  • 然后你可以创建你的自定义一个
【解决方案2】:

查看本教程 - 它会让您了解如何实现自定义列表视图项布局。 http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

要在单击整个项目的任何部分时更改复选框的状态,请将 OnClickListener 添加到项目的布局根元素 (convertView) 并在此处切换复选框状态。

PS不要介意那里的 ListActivity 东西。无论哪种方式,它都会起作用。重要的是自定义 Adapter 和它的 getView() 方法,它可以扩展您的项目的自定义布局。

UPD 这里有一个更合适的方法来完成你想要的:你的项目应该实现 Checkable,然后你可以使用 ListViews singleChoice 或 multipleChoice 模式。这是一个已回答的问题,尽管答案似乎错过了有关复选框的实际部分。但我敢打赌,你可以弄清楚,重要的是想法:

Android ListView with RadioButton/CheckBox in singleChoice mode and a custom row layout

【讨论】:

  • 我尝试了同样的方法,但是当我在没有复选框的情况下膨胀列表视图的行时,setOnItemClickListener 正在工作。但是当我在行中添加复选框时,listview 的 setOnItemClickListener 没有被调用。
  • 您可以将 OnClickListener 用于行的根视图和复选框。这样,您单击复选框 - 它接收事件。您单击该行中的任何其他内容 - 该行的根视图接收事件。他们都可以做同样的事情——在复选框上调用 toggle()。
  • 虽然,对于你想要完成的事情,似乎有更充分的解决方案。我已经添加了答案的链接,请查看。
猜你喜欢
  • 2011-09-15
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 2011-02-14
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
相关资源
最近更新 更多