我的问题很简单:如何使用长按让用户从中选择项目ListView
?到目前为止,我只知道如何检测“短”点击并采取适当的措施。
另外,我想在所选项目上显示一个复选标记。那怎么办?
我的问题很简单:如何使用长按让用户从中选择项目ListView
?到目前为止,我只知道如何检测“短”点击并采取适当的措施。
另外,我想在所选项目上显示一个复选标记。那怎么办?
在https://stackoverflow.com/questions/12090394/i-cant-get-longclick-to-work-on-listactivity中回答:
// Optional, added if done from ListActivity (or possibly ListFragment)
ListView lv = getListView();
// Set on this if overriding OnItemLongClickListener, otherwise use an anonymous inner function
lv.setOnItemLongClickListener(this);
然后你需要手动记住选择了什么。您需要从更改中通知列表并在适配器的 getView 方法中执行某些操作。
使用 Contextual ActionBar 模式一次与所有项目交互是一个很好的做法,请参见此处。
它的工作方式与 相同onClickListener
,只是您检查的是onLongClickListener
. 所以你会有这种结构:
your_view.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
...
}
});
如果要显示复选标记,我认为最好的方法是定义自己的行布局,只需CheckBox
在行内容的右侧定义 a 即可。这样ArrayAdapter
,您可以指定新的布局,而不是传递一些 Android 布局,例如:
your_adapter = new ArrayAdapter(context, R.layout.your_new_layout, initial_rows);