上一次,我们通过ActionBar删除整个短信会话,但在实际使用中,我们还需要删除选中的某条记录,而非会话下所有短信,在这一篇文章中,我们就一起来该如何做吧,运行效果如下:
首先,为使用上下文菜单,需要在ShowSessionMessagesActivity中重写上下文菜单的相关方法,包括onCreateContextMenu()和onContextItemSelected(),前者用于创建上下文菜单,加载相应的定义上下文菜单选项的文件,后者定义了上下文菜单选项被选中的处理方法,先来看一下onCreateContextMenu()的实现吧。
<span style="font-size:14px;">//加载上下文菜单文件,创建上下文菜单,当某条短信被点击时弹出选项
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
//通过xml文件来配置上下文菜单选项
MenuInflater mInflater = getMenuInflater();
mInflater.inflate(R.menu.show_session_messages_context_menu, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}</span>
在此方法中,加载了上下文菜单的定义文件,即show_session_messages_context_menu.xml,该xml文件中定义了上下文菜单的选项,文件所在目录与OptionMenu一样,都是工程下的res\menu,定义的方式也与OptionMenu一样,下面看一下xml文件的定义。
<span style="font-size:14px;"><menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 上下文菜单的删除选项 -->
<item
android:id="@+id/show_session_messages_context_menu_delete"
android:title="@string/action_delete"/>
<!-- 上下文菜单的转发选项 -->
<item
android:id="@+id/show_session_messages_context_menu_forward"
an

本文介绍了如何在Android应用中通过上下文菜单(ContextMenu)实现选择并删除单条短信的功能。首先,需要在ShowSessionMessagesActivity中重写onCreateContextMenu()和onContextItemSelected()方法。在onCreateContextMenu()中创建菜单,onContextItemSelected()处理选中项的删除操作。通过MenuItem对象获取短信在列表的位置,并使用ContentResolver的delete()方法删除选定的短信。此外,还讨论了如何在Activity中获取Adapter中的数据,并为ListView注册ContextMenu事件。
最低0.47元/天 解锁文章
7642

被折叠的 条评论
为什么被折叠?



