java - 如何修复: Resources$NotFoundException while calling Toast

标签 java android listview

我想显示Selecteditemposition ( Listview 中点击的项目数) Toast 中当在我的 Listview 中单击某个项目时,但是此事件中的任何方法都会崩溃。

这是崩溃报告:

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();
    }
});

我做错了什么?

最佳答案

lineNumber 是一个整数,因此您正在使用 makeText() 的重载:

makeText(Context context, int resId, int duration)

它需要一个整数字符串资源id,因此lineNumber被认为是一个字符串资源id,这当然不是,所以它无法找到。

相反,您应该做的是将 lineNumber 转换为字符串并使用 makeText() 的重载:

makeText(Context context, CharSequence text, int duration)

所以这样做:

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

关于java - 如何修复: Resources$NotFoundException while calling Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56797734/

相关文章:

android - 在 greenDao 中添加索引列的正确方法?

android - 使用回形针插件通过 Post 方法为 rails 服务器上传图像

java - bindView() 中的 ListView.setItemChecked() 带走了我刚刚单击的 EditText 的焦点

android - ListView Activity OnItemClickListener TextView 的空指针异常

java - Spring 全局异常处理程序 - 不是 MVC

java - WAR文件的主要方法是什么?

java - 在java中将unix时间戳转换为日期

java - 如何使用 Google Adwords API 获取一组关键字的可能展示位置列表?

安卓:HTTP客户端

android - RecyclerView 中的 ListView