android - ListView 在滚动时崩溃

标签 android listview onitemclicklistener

正如标题所示,当我尝试在 ListView 上滚动时,我的应用程序目前崩溃了。打开 ListView 时,一切都按预期工作,但一旦向下滚动,它就会崩溃。

ListView 包含在一个对话框中;下面的代码 fragment 显示了我如何初始化对话框和数组适配器:

final Dialog startersDialog = new Dialog(context);
    startersDialog.setContentView(R.layout.starters_dialog);
    startersDialog.setTitle("Select Starter");
    convStarters = (ListView) startersDialog.findViewById(R.id.scenarios);
    greetingsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, chatBot.getGreetingsInputs());
    convStarters.setAdapter(greetingsAdapter);

当我选择列表项时调用的代码:

convStarters.setOnItemClickListener(
            new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapter, View view, int position, long arg3) {
                    userInput = adapter.getItemAtPosition(position).toString();
                    System.out.println("User Input Variable is: ");
                    userInputView.setText(userInput);
                    userInputView.setFocusable(false);
                    startersDialog.dismiss();
                }
            }
    );

对话框 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scenarios"/>

我得到的错误是:

02-24 16:59:16.914  17612-17612/com.example.alex.projectui E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.alex.projectui, PID: 17612
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
        at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
        at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
        at android.widget.AbsListView.obtainView(AbsListView.java:2823)
        at android.widget.ListView.makeAndAddView(ListView.java:1884)
        at android.widget.ListView.fillDown(ListView.java:713)
        at android.widget.ListView.fillGap(ListView.java:677)
        at android.widget.AbsListView.trackMotionScroll(AbsListView.java:7040)
        at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:6478)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
        at android.view.Choreographer.doCallbacks(Choreographer.java:590)
        at android.view.Choreographer.doFrame(Choreographer.java:559)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:145)
        at android.app.ActivityThread.main(ActivityThread.java:5942)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

如果问题相当简单,我深表歉意,但过去几天我一直在努力解决这个问题,但我找不到任何明显或易于理解的资源来处理此类问题。

提前致谢。非常感谢任何回复。

最佳答案

检查来自 chatBot.getGreetingsInputs() 的所有值。检查列表中是否没有空元素。

例如,在这个问题 Android App crashes after Scrolling down ListView 中,最后 2 条记录已损坏。

关于android - ListView 在滚动时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608455/

相关文章:

java - 如何将 Android 应用程序连接到 RoR 数据库

android - setvisibility(view.visible) 在 setvisibility(view.gone) 之后不工作

android - monodroid expandablelistview.itemclick 不会被 customview c# 调用

ListView 中的Android多行项目

android - 在 Listview onItemClick() 监听器不工作?

java - 服务如何无限期运行并允许在android中绑定(bind)?

android - 程序类型已经存在 : com. google.thirdparty.publicsuffix

java - android应用程序中的序列化和反序列化

javafx:如何向 ListView 添加颜色选择器?

android - 什么更贵?每次数据更改时创建一个新的 ArrayAdapter 还是更新现有的 ArrayAdapter?