`

Android 长按显示上下文菜单代码

 
阅读更多
Android 长按显示上下文菜单代码
private ListView fileList;
 
fileList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {  
  
	@Override  
	public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo info) {  
		// TODO Auto-generated method stub  
		menu.setHeaderTitle(R.string.contentMenu);  
		menu.add(0, AndBoxConstant.OPEN, 0, R.string.open);  
		menu.add(0, AndBoxConstant.PROPERTIY, 6, R.string.properties);  
	}  
});  
 
@Override  
public boolean onContextItemSelected(MenuItem item) {  
	switch (item.getItemId()) { 

	case AndBoxConstant.OPEN:  
		.........  
		break;  

	case AndBoxConstant.PROPERTIY:  
		.........  
		break;  

	default:  
		break;  
	}  
	return super.onContextItemSelected(item);  
}

fileList.setOnItemLongClickListener(new OnItemLongClickListener() {
    @Override  
    public boolean onItemLongClick(AdapterView<?> ada, View view, int index, long longIndex) {  
        fileList.showContextMenu();  
        return true;  
    }  
});


在处理长按时,注意的细节是把onItemLongClick返回设置为true,否则长按是会执行setOnItemClickListener。

=============================================================
上下文菜单Context Menu
Android的上下文菜单在概念上和PC软件的右键菜单类似。当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”(按住不动差不多两秒钟)动作,将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,不过,最常见的是用于列表视图ListView的item,在按中列表项时,会转换其背景色而提示将呈现上下文菜单。 (电话联系人列表提供了关于这个特性的一个很好的例子)。 
 
注意:上下文菜单项不支持图标或快捷键。 
 
为了创建一个上下文菜单,你必须重写这个活动的上下文菜单回调函数:onCreateContextMenu() 和onContextItemSelected()。在回调函数onCreateContextMenu()里,你可以通过使用一个add()方法来添加菜单项,或者通过扩充一个定义在XML中的菜单资源。然后,通过registerForContextMenu()为这个视图注册一个上下文菜单ContextMenu. 

比如,下面的代码可以被用到Notepad应用程序中来为列表中的每一个注释添加一个上下文菜单: 
public void onCreateContextMenu(ContextMenu menu, View v,  
                                ContextMenuInfo menuInfo) {  
 
  super.onCreateContextMenu(menu, v, menuInfo);  
  menu.add(0, EDIT_ID, 0, "Edit");  
  menu.add(0, DELETE_ID, 0,  "Delete");  
 
}  
    
public boolean onContextItemSelected(MenuItem item) {  
 
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();  
  switch (item.getItemId()) {  
 
  case EDIT_ID:  
    editNote(info.id);  
    return true;  
 
  case DELETE_ID:  
    deleteNote(info.id);  
    return true;  
 
  default:  
    return super.onContextItemSelected(item);  
  }  
}


在onCreateContextMenu()中,除了给出将添加MenuItems的ContextMenu外,还需要给定选中的视图和一个上下文菜单信息ContextMenuInfo对象,该对象提供了选中对象的附加信息。在本例中,onCreateContextMenu()没做什么特别的事-只是添加了一些菜单项。

在onContextItemSelected() 回调函数中,我们从MenuItem中请求AdapterContextMenuInfo,该对象提供当前选中项的信息。我们从中所要的只是这个选中项的列表ID,所以无论编辑还是删除一个注释,我们通过这个对象的AdapterContextMenuInfo.info字段来找到该ID。这个ID被传递给editNote() 和deleteNote()方法来执行相应的动作。 

现在,要为一个列表视图中的所有项注册上下文菜单,我们可以传递整个的列表视图对象给registerForContextMenu(View) 方法: 
registerForContextMenu(getListView());  

 
记住,你可以传递任何视图对象来注册一个上下文菜单。这里,getListView()返回这个被用于Notepad应用程序的列表活动ListActivity中的列表视图对象。这样,这个列表中的任何item都被注册到这个上下文菜单。
分享到:
评论
1 楼 cy86201885 2012-03-30  
AndBoxConstant这个是什么啊

相关推荐

    Android 为EditText文本框添加长按显示上下文菜单.rar

    Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...

    Android实现上下文菜单、下拉菜单、选项菜单代码

    Android 实现上下文菜单、下拉菜单、选项菜单代码详解 Android 中的菜单系统是一个非常重要的组件,它提供了多种方式来帮助用户与应用程序进行交互。在本文档中,我们将详细介绍如何实现上下文菜单、下拉菜单和选项...

    ContextMenu 上下文选项菜单,长按后跳出菜单_android源码.zip

    首先,为了展示ContextMenu,你需要在AndroidManifest.xml文件中为你的Activity添加一个android:contextMenu属性,声明该Activity支持上下文菜单。然后,在Activity中重写onCreateContextMenu()方法,用于初始化菜单...

    上下文菜单与上下文操作模式

    3. 调用`registerForContextMenu()`:在需要显示上下文菜单的视图上调用此方法,以便启用长按事件。 例如,在处理CriminalIntent应用中,如果每个犯罪条目支持上下文菜单,用户可以长按来删除或编辑犯罪记录。 **...

    ListView:单击和长按弹出上下文菜单(ContextMenu)

    本篇文章将深入探讨如何在ListView中实现单击和长按事件,弹出上下文菜单(ContextMenu)。这通常用于提供针对列表项的快捷操作,提升用户体验。 首先,我们需要在清单文件(`AndroidManifest.xml`)中为我们的Activity...

    ListView长按显示菜单

    // 创建并显示上下文菜单 return true; // 表示已处理长按事件 } }); ``` 3. **创建上下文菜单**: 在Activity中,重写`onCreateContextMenu()`方法,定义上下文菜单的菜单项和对应的回调: ```java @...

    创建上下文菜单

    在Android开发中,上下文菜单(Context Menu)是一种常见的交互元素,它允许用户在长按某个视图或项时出现一个包含相关操作的弹出菜单。上下文菜单通常用于提供与特定视图或数据相关的动作选项,而不是全局的操作。在...

    Android 之 上下文菜单、选项菜单、子菜单

    在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的多种操作选项。它们各自有不同的应用场景和设计规范,对于提升用户体验至...

    android 选项菜单和上下文菜单

    在Android应用开发中,选项菜单(OptionsMenu)和上下文菜单(ContextMenu)是两种常见的交互方式,用于提供用户在特定场景下的操作选择。本项目通过Android Studio实现,将这两种菜单集成在一个应用中,使得用户...

    Listview 长按弹出菜单

    // context为上下文,view为触发长按的View popupMenu.getMenuInflater().inflate(R.menu.popup_menu, popupMenu.getMenu()); // 加载菜单布局 popupMenu.show(); // 显示菜单 ``` 3. 添加菜单项: 在res/menu/...

    Android ContextMenu 上下文选项菜单,长按后跳出菜单Demo.zip

    这个"Android ContextMenu 上下文选项菜单,长按后跳出菜单Demo.zip"包含了实现这一功能的示例代码。下面我们将深入探讨Android中的ContextMenu以及如何创建和使用它。 首先,理解ContextMenu的基本概念。...

    Android代码-ContextMenu上下文选项菜单长按后跳出菜单.zip

    这个压缩包“Android代码-ContextMenu上下文选项菜单长按后跳出菜单.zip”包含了关于如何在Android应用中实现ContextMenu的示例代码。 首先,我们来详细解释ContextMenu的基本概念和工作原理。ContextMenu不同于...

    Android组件实现长按弹出上下文菜单功能的方法

    "Android组件实现长按弹出上下文菜单功能的方法" Android组件实现长按弹出上下文菜单功能的方法是Android开发中常见的功能之一,该功能允许用户在长按某个组件时弹出一个上下文菜单,提供多种操作选项。下面将详细...

    Android ContextMenu 上下文选项菜单,长按后跳出菜单-IT计算机-毕业设计.zip

    在Android开发中,...在这个方法里,我们需要调用`registerForContextMenu()`为想要显示ContextMenu的视图注册上下文菜单,并通过`add()`方法添加菜单项,每个菜单项可以通过`setHeaderTitle()`、`setIcon()`和`...

    Android中使用上下文菜单资源实现旅途美景项目的代码清单.pdf

    总结来说,这个“旅途美景”项目利用Android的上下文菜单资源,实现了长按ImageView时弹出菜单,用户可以选择不同的景点图片作为背景。这个过程涉及到了Activity的生命周期方法、菜单资源的加载、菜单项的选择回调...

    Android中使用上下文菜单资源实现旅途美景练习题的任务要求.pdf

    6. **测试与调试**:在Android模拟器或真实设备上运行应用,长按图片检查上下文菜单是否正确显示并能正常切换图片。 参考文献中提到的《Android移动应用开发案例教程》是一本实用的教材,可能包含了更详细的代码...

    菜单 选项菜单 子菜单 上下文菜单

    上下文菜单是针对特定视图或数据项提供的操作选项,通常在长按操作后显示。首先,在XML布局文件中为需要上下文菜单的视图注册: ```xml android:id="@+id/text_view" android:longClickable="true" android:...

    上下文菜单+listview

    在Android开发中,"上下文菜单(Context Menu)"和"ListView"是两个非常重要的组件,尤其在构建用户交互界面时。本文将深入探讨如何在Eclipse环境下利用这两个组件创建一个功能完善的移动应用。 首先,让我们了解**上...

    Kotlin上下文菜单_kotlin_

    在Android中,上下文菜单(Context Menu)是一种特殊的菜单,它通常在用户长按一个视图(如ListView的项或ImageView)时弹出,提供与该视图相关的操作选项。这种设计使得用户能快速访问针对特定视图的操作,而无需跳转...

Global site tag (gtag.js) - Google Analytics