我怎样才能抓住这样的事件? onCreateContextMenu
非常相似,但我不需要菜单。如何处理长按ListView项?
回答
很难知道你需要实现什么。但我的猜测是,你想对收到长按的项目执行一些操作。为此,您有两种选择:
。
listView.setOnItemLongClickListener (new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
//do your stuff here
}
});
- 如果要创建一个自定义适配器,在方法Adapter#getView(...)
为您的视图添加自定义的View.OnLongClickListener。它可以被许多实例共享,然后您可以使用参数
onLongClick(View v)
知道哪个视图已被点击并作出相应的反应。
问候, 斯特凡
请问这个烂摊子了ListView的正常滚动/一扔功能创建视图时添加View.OnLongClickListener? – 2011-06-01 18:26:53
奇怪,但它也不起作用。我这样做:'公共类BridgesCloseActivity扩展ListActivity {... OnLongClickListener longClickListener; ... longClickListener = new OnLongClickListener(){ \t public boolean onLongClick(View v){ \t \t Log.i(“”,Integer.toString(v.getId())); \t \t return true; \t} };' – 2011-06-01 19:13:47
@LA_您可能需要让onDown返回true。 – 2011-06-01 20:21:54
通常情况下,你会与一个上下文菜单,您可以通过与Activity.registerForContextMenu(View view)
注册ListView控件做一个列表视图长按关联给其他更加一致的用户界面体验android应用程序。
,然后重写onContextItemSelected方法在你的应用程序是这样的:
@Override
public void onCreate(Bundle savedInstanceState) {
listView = (ListView) findViewById(R.id.your_list_view);
registerForContextMenu(listView);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle(getString(R.string.menu_context_title));
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.your_context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.some_item:
// do something useful
return true;
default:
return super.onContextItemSelected(item);
}
在列表中的位置为info.id
还举行了如果你只是想要捕获的长按事件,然后我想想Snicolas的建议会起什么作用。
它不起作用。看起来像是因为我没有上下文菜单 - onContextItemSelected从不被调用。 – 2011-06-01 19:04:50
我更新了代码示例。你调用了'registerForContextMenu(listView)'吗?正如其他人所说的,你是在试图在项目被长时间点击时尝试获得某些东西,或者你想要为列表视图上的项目获取上下文菜单吗? – 2011-06-01 19:55:03
我试图开始另一项活动,当该项目被长时间点击。所以,不需要显示上下文菜单。 'RegisterForContextMenu(listView)'在那里。 – 2011-06-01 19:59:07
//Deleted individual cart items
//on list view cell long press
cartItemList.setOnItemLongClickListener (new OnItemLongClickListener() {
@SuppressWarnings("rawtypes")
public boolean onItemLongClick(AdapterView parent, View view, final int position, long id) {
final CharSequence[] items = { "Delete" };
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Action:");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
cart = cartList.get(position);
db.removeProductFromCart(context, cart);
new AlertDialog.Builder(context)
.setTitle(getString(R.string.success))
.setMessage(getString(R.string.item_removed))
.setPositiveButton("Done", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(CartDetailsActivity.this, HomeScreen.class);
startActivity(intent);
}
})
.show();
}
});
AlertDialog alert = builder.create();
alert.show();
//do your stuff here
return false;
}
});
- 1. 如何处理PanResponder长按事件?
- 2. android:如何增加android的listview项的长按时间?
- 3. 如何处理长按媒体按钮,以启动活动?
- 4. 如何禁用长的ListView项单击
- 5. 如何处理Android ListView的项目点击按钮和特定区域?
- 6. 处理ListView longClick
- 7. android-在ListView中处理项目点击
- 8. ListView项目选择和异常处理
- 9. 如何访问和处理ListView项目中的视图?
- 10. 长按不ListView控件
- 11. 在单个UITabBarItem上处理长按
- 12. 如何处理ListView中的ViewStub
- 13. 如何处理事件点击和长按gridview android?
- 14. 如何处理事件时,长按Windows键wp8
- 15. 如何按日期排序ListView项目
- 16. 如何让按钮点击ListView项目?
- 17. 如何按值项目的顺序处理python字典项目?
- 18. 如何处理组合框中非常长的文本项目
- 19. 如何处理托管选项菜单对话框中的listView项目更改?
- 20. 如何处理Python的长期进口
- 21. 如何处理多个$ _GET的长URL?
- 22. 如何处理SQL中的长比较
- 23. Python FileNotFoundError如何处理长文件名
- 24. 如何在listview中点击listview项目按钮启动相机?
- 25. Windows批处理按长度分割长字符串64
- 26. Android Listview时长按一个ContextMenu显示删除文件选项
- 27. Win10 UWP应用程序处理长按回退按钮
- 28. 如何在ListView上长按传递变量?
- 29. wxFrame不处理选项卡按钮
- 30. 如何使用MVVM处理ListView的itemView中的按钮的启用/禁用?
可以请你澄清如何将OnItemLongClickListener分配给我的ListView?先谢谢你。 – 2011-06-01 20:14:42
@LA_参见上文。 – Aleadam 2011-06-01 20:54:44
谢谢,它完美的作品。我怎样才能获得特定的数据库价值,与长期点击的项目相关联?应该像'this.getListAdapter()。getItem(position)'? – 2011-06-02 11:31:12