Andorid上下文菜单

gljx98 2019-03-20 09:29:29
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
String string=null;
switch (item.getItemId()){
case R.id.openfile://open的子菜单不能获取postion
Log.i(TAG,"-->"+info.toString() );
string = arrayAdapter.getItem(info.position);
Toast.makeText(MainActivity.this,string,Toast.LENGTH_LONG).show();
break;
case R.id.open://父菜单正常响应可以获取postion
Log.i(TAG,"-->"+info.toString() );
Log.i(TAG,"-->"+info.position );
string = arrayAdapter.getItem(info.position);
Toast.makeText(MainActivity.this,string,Toast.LENGTH_LONG).show();
break;

}
return super.onContextItemSelected(item);
}

在一个ListView里响应了 菜单
进入子菜单后,子菜单在 onContextItemSelected 响应后 无法获取 listview中的postion 错误信息如下
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at acgn.tech.menu.MainActivity.onContextItemSelected(MainActivity.java:46)
at android.app.Activity.onMenuItemSelected(Activity.java:3616)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:436)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:196)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:109)
at com.android.internal.policy.PhoneWindow$PhoneWindowMenuCallback.onMenuItemSelected(PhoneWindow.java:3744)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:776)
at com.android.internal.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:82)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:148)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:923)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:913)
at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
at android.widget.AdapterView.performItemClick(AdapterView.java:318)
at android.widget.AbsListView.performItemClick(AbsListView.java:1192)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3184)
at android.widget.AbsListView$3.run(AbsListView.java:4166)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
布局文件没有问题,就是在上下文菜单中,子菜单不能获取 listview的 postion,请求大神们指点迷津
...全文
76 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
楚木Ya 2019-03-20
  • 打赏
  • 举报
回复
直接在长按点击事件中注册上下午菜单,并把postion通过全局变量保存就OK了

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧