Android 应用程序出错

Error on Android App

我正在构建我的应用程序,但我在控制台上收到此错误“java.lang.RuntimeException:无法启动 activity ComponentInfo{com.example.cassieleong.delishcart/com.example.cassieleong.delishcart.FruitMain}: java.lang.NullPointerException: 尝试在空对象引用上调用虚拟方法 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)'"

我正在尝试构建一个 activity,其中包含带有 checkboxtextview 的列表视图。

我不知道如何解决这个错误。请帮忙。非常感谢。

Java.

public class FruitMain extends AppCompatActivity {
ListView listView;
String[] fruit;
Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fruit_main);
    context = this;
    listView = (ListView) findViewById(R.id.listView4);
    String [] fruit = {"Apple","Applesauce","Apricot","Banana","Barlett Pears","Blackberries","Blueberries","Cantaloupe","Cherry","Citron","Coconut","Cranberry",
    "Currants","Dates","Dried Fruit","Fig","Fruit Cocktail","Fruit Sauce","Grape","Grapefruit","Green Grapes","Honeydew Melon","Juniper Berries","Kiwi",
    "Kumquat","Lemon","Lime","Lime Juice","Mango","Nectarines","Orange","Papaya","Passion Fruit","Peach","Pear","Persimmon",
            "Pineapple","Plantain","Plum","Plum Tomatoes","Pomegranate","Prunes","Raison","Raspberry","Red Grapes","Strawberry","Sweet Cherries","Tangerine",
            "Watermelon"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.fruititem_list, fruit);
    listView.setAdapter(adapter);
    listView.setItemsCanFocus(false);
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //Inflate the menu; this adds item to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_ingredient_choices, menu);
    return true;
}

}

XML。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.cassieleong.delishcart.FruitMain"
tools:showIn="@layout/activity_fruit_main">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="         Fruit Product            "
    android:id="@+id/textView6"
    android:textSize="35dp"
    android:background="#f97c7c"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true" />

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView5"
    android:layout_below="@+id/textView6"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/button2"
    android:layout_alignParentEnd="true"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Submit"
    android:id="@+id/button3"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" />

XML

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checkedTextView4"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text=""
android:gravity="center"
android:drawableLeft="?android:attr/listChoiceIndicatorMultiple"
android:textSize="25dp">

您使用错误的 ID 获取列表视图

而不是

listView = (ListView) findViewById(R.id.listView4);

试试这个:

listView = (ListView) findViewById(R.id.listView5);