我的问题很简单:如何使用长按功能让用户从
另外,我想在所选项目上显示一个勾号。如何实现?
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);
它的工作方式与onClickListener
相同,只是您要检查的是onLongClickListener
。因此,您将拥有这样的结构:
your_view.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
...
}
});
CheckBox
。这样,您不需要传递一些 Android 布局给ArrayAdapter
,而是指定您的新布局,例如:your_adapter = new ArrayAdapter(context, R.layout.your_new_layout, initial_rows);
简单: OnLongClickListener 是长按监听器。
然后,您需要手动记住已选或未选中的内容。您需要通知列表发生了哪些变化,并在适配器的 getView 方法中执行某些操作。
最好使用上下文操作栏模式来同时与所有项目进行交互,详见 此处。
GONE
的复选框,并在长按时显示它,这样会起作用吗? - An SO UsergetView()
方法中声明onLongClickListener
。该方法的第二个参数(通常称为convertView
)是每一行的布局(非常模糊地说)。您可以通过使用convertView.findViewById(R.id.my_checkbox)
获取CheckBox
的视图,之后您可以做任何想做的事情,例如将其可见性设置为 VISIBLE、GONE 等等。 - nKn