猿问

如何修复:调用 Toast 时出现 Resources$NotFoundException

我想在 my 中单击某个项目时在 a 中显示Selecteditemposition(a 中单击的项目数Listview),但此事件中的任何方法都崩溃了。ToastListview


这是崩溃报告:


2019-06-27 20:54:02.681 13006-13015/? E/ample.basicipt: Failed to send DDMS packet REAQ to debugger (-1 of 20): Broken pipe

2019-06-27 20:54:17.470 13006-13006/com.example.basiciptv E/ample.basicipt: No package ID ff found for ID 0xffffffff.

2019-06-27 20:54:17.472 13006-13006/com.example.basiciptv E/AndroidRuntime: FATAL EXCEPTION: main

    Process: com.example.basiciptv, PID: 13006

    android.content.res.Resources$NotFoundException: String resource ID #0xffffffff

        at android.content.res.Resources.getText(Resources.java:348)

        at android.widget.Toast.makeText(Toast.java:307)

        at com.example.basiciptv.MainActivity$4.onItemClick(MainActivity.java:336)

        at android.widget.AdapterView.performItemClick(AdapterView.java:318)

        at android.widget.AbsListView.performItemClick(AbsListView.java:1192)

        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3169)

        at android.os.Handler.handleCallback(Handler.java:873)

        at android.os.Handler.dispatchMessage(Handler.java:99)

        at android.os.Looper.loop(Looper.java:193)

        at android.app.ActivityThread.main(ActivityThread.java:6692)

        at java.lang.reflect.Method.invoke(Native Method)

        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

这是代码:


list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,

                            int position, long id) {

        boolean co = true;

        int lineNumber = listview.getSelectedItemPosition();

        Toast.makeText(MainActivity.this, lineNumber, Toast.LENGTH_SHORT).show();

    }

});

我究竟做错了什么?


拉莫斯之舞
浏览 200回答 2
2回答

ITMISS

lineNumber是一个整数,所以你正在使用这个重载makeText():makeText(Context&nbsp;context,&nbsp;int&nbsp;resId,&nbsp;int&nbsp;duration)它需要一个整数字符串资源 id,因此lineNumber被认为是一个字符串资源 id,当然不是,所以它找不到。相反,您应该做的是转换lineNumber为字符串并使用以下重载makeText():makeText(Context&nbsp;context,&nbsp;CharSequence&nbsp;text,&nbsp;int&nbsp;duration)所以这样做:Toast.makeText(MainActivity.this,&nbsp;String.valueOf(lineNumber),&nbsp;Toast.LENGTH_SHORT).show();

肥皂起泡泡

所以 linenumber 已经作为位置返回 onclick 方法。Toast.maketext(getApplicationContext,position.toString(),&nbsp;Toast.LENGHT_LONG).show();
随时随地看视频慕课网APP

相关分类

Java
我要回答