Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
空对象引用不断出现-void android.widget.GridView.setAdapter(android.widget.ListAdapter)_Android_Pointers_Exception_Gridview_Null - Fatal编程技术网

空对象引用不断出现-void android.widget.GridView.setAdapter(android.widget.ListAdapter)

空对象引用不断出现-void android.widget.GridView.setAdapter(android.widget.ListAdapter),android,pointers,exception,gridview,null,Android,Pointers,Exception,Gridview,Null,这是我的主要任务 public class MainActivity2 extends AppCompatActivity { GridView gridView; CustomAdapter customAdapter; String[] fruitNames = {"Blade Runner 2049","Black Mass","Joker","RiverDale"}; int[] fruitImages = {R.drawable.blader,R.drawable.blac

这是我的主要任务

public class MainActivity2 extends AppCompatActivity {

 GridView gridView;
 CustomAdapter customAdapter;

 String[] fruitNames = {"Blade Runner 2049","Black Mass","Joker","RiverDale"};
 int[] fruitImages = {R.drawable.blader,R.drawable.blackm,R.drawable.joker,R.drawable.riverdale};
 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.row_data);
    gridView = findViewById(R.id.gridview);

    gridView.setAdapter(customAdapter);
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //Toast.makeText(getApplicationContext(),fruitNames[i],Toast.LENGTH_LONG).show();
            Intent intent = new Intent(getApplicationContext(),NowShowingActivity.class);
            intent.putExtra("name",fruitNames[i]);
            intent.putExtra("image",fruitImages[i]);
            startActivity(intent);

        }
    });

}

private class CustomAdapter extends BaseAdapter {
    @Override
    public int getCount() {
        return fruitImages.length;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View view1 = getLayoutInflater().inflate(R.layout.row_data, null);
        //getting view in row_data
        TextView name = view1.findViewById(R.id.fruits);
        ImageView image = view1.findViewById(R.id.images);

        name.setText(fruitNames[i]);
        image.setImageResource(fruitImages[i]);
        return view1;
    }
}
}

这是活动2

<androidx.coordinatorlayout.widget.CoordinatorLayout 
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"
 tools:context=".MainActivity2">

  <TextView
    android:id="@+id/griddata"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="105dp"
    android:text="Blade Runner 2049"
    android:textColor="#000"
    android:textSize="30dp" />

  <ImageView
    android:id="@+id/imageView"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:src="@drawable/blader"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/griddata"
    android:layout_marginTop="27dp" />

<include layout="@layout/nowshowing_grid" />


</androidx.coordinatorlayout.widget.CoordinatorLayout>

这是正在显示的网格活动主文件

<GridView
    android:id="@+id/gridview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#e5e5e5"
    android:horizontalSpacing="1dp"
    android:numColumns="2"
    android:verticalSpacing="1dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

这是数据行中的内容

<RelativeLayout
       android:id="@+id/gridviewdata"
       android:layout_width="190dp"
       android:background="#fff"
       android:layout_height="180dp">

    <TextView
        android:id="@+id/fruits"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Blade Runner 2049"
        android:textStyle="normal|italic"
        android:textSize="25dp" />

    <ImageView
        android:id="@+id/images"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/blader" />

</RelativeLayout>

这是错误消息

原因:java.lang.NullPointerException:尝试调用虚拟方法


     com.example.mycineman.MainActivity2.onCreate(MainActivity2.java:28)


当我点击按钮转到下一个活动以查看网格视图时,会发生这种情况。

CustomAdapter为空,您需要先初始化它,然后再调用
setAdapter

customAdapter = new CustomAdapter();
gridView.setAdapter(customAdapter);

我仍然收到相同的错误,感谢您的回复。在activity2 oncreate中,您使用row_data layout
setContentView(R.layout.row_data)尝试将其更改为您的主要活动2希望这有助于内容视图在您的
MainActivity2.java
中出错。将其替换为
setContentView(R.layout.activity_main2)
customAdapter = new CustomAdapter();
gridView.setAdapter(customAdapter);