2013-03-14 47 views
1

我有3个选项卡,每个选项卡都有一个列表视图。我已经注册了这些列表视图菜单。我有三个不同的数组列表,我在其中存储各个列表视图的项目。

现在我想要点击的listview项目的位置。

我的代码是:

public boolean onContextItemSelected(MenuItem item) { 

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 

     switch(item.getItemId()){ 

    case R.id.mycards_contextmenu_1: 

     if(mCurrentTab.equals("Tab 1")){ 
      try{ 
      int pos= info.position; 
      Toast.makeText(getBaseContext(), pos, Toast.LENGTH_LONG).show(); 
      }catch(Exception e){ 
       Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show(); 
      } 
      } 
    break; 

    } 

我得到

android.content.res.resources$notfoundexception 

我在哪里出了错?

编辑:

Stack Trace : 


03-14 22:06:12.488: E/AndroidRuntime(3055): FATAL EXCEPTION: main 
03-14 22:06:12.488: E/AndroidRuntime(3055): android.content.res.Resources$NotFoundException: String resource ID #0x0 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.content.res.Resources.getText(Resources.java:229) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.widget.Toast.makeText(Toast.java:265) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at neeraj.cardXchange.myCardsPackage.myCardsActivity.onContextItemSelected(myCardsActivity.java:211) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.app.Activity.onMenuItemSelected(Activity.java:2552) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback.onMenuItemSelected(PhoneWindow.java:3601) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:167) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:924) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.widget.AdapterView.performItemClick(AdapterView.java:298) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.widget.AbsListView.performItemClick(AbsListView.java:1086) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2855) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.widget.AbsListView$1.run(AbsListView.java:3529) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.os.Handler.handleCallback(Handler.java:615) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.os.Handler.dispatchMessage(Handler.java:92) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.os.Looper.loop(Looper.java:137) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at android.app.ActivityThread.main(ActivityThread.java:4745) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at java.lang.reflect.Method.invokeNative(Native Method) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at java.lang.reflect.Method.invoke(Method.java:511) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
03-14 22:06:12.488: E/AndroidRuntime(3055): at dalvik.system.NativeStart.main(Native Method) 
+0

错误是什么?如果你不知道,请发布全栈跟踪 – codeMagic 2013-03-14 16:17:28

+0

int pos = info.position; – user2056245 2013-03-14 16:18:32

+0

请粘贴完整的堆栈跟踪 – 2013-03-14 16:32:55

回答

2

应该是

Toast.makeText(getBaseContext(), String.valueOf(pos), Toast.LENGTH_LONG).show(); 

Toast还具有makeText()方法,该方法接受字符串的资源ID(其为int),并且通过考取pos,您调用该方法,该方法无法找到具有该ID的字符串资源,因此可以使用

android.content.res.Resources$NotFoundException 
+0

,但我如何使用整数值的pos ??? 我想pos的整数值..... – user2056245 2013-03-14 16:42:05

+0

进一步我想用它的值来写删除函数,其中“pos:会给物品的位置点击吗? – user2056245 2013-03-14 16:42:44

+0

@ user2056245 Toasts向用户显示一些东西并且该方法可以接受一个字符串或一个字符串资源ID,我将'pos'转换为一个String *来作为* Toast,所以它不会崩溃。您可以继续使用'pos'作为int – 2013-03-14 16:43:39

相关问题