Java Android Studio网格视图没有';运行应用程序时不显示

Java Android Studio网格视图没有';运行应用程序时不显示,java,android,android-studio,gridview,Java,Android,Android Studio,Gridview,我创建了一个Java类,它应该显示如下内容: 但这是我运行应用程序时得到的结果: 它没有显示我想要的,Android Studio在Logcat中也没有显示任何错误,所以我不知道为什么它不工作 这是类设置活动的代码: package com.example.myquiz; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle

我创建了一个Java类,它应该显示如下内容:

但这是我运行应用程序时得到的结果:

它没有显示我想要的,Android Studio在Logcat中也没有显示任何错误,所以我不知道为什么它不工作

这是类设置活动的代码:

package com.example.myquiz;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MenuItem;
import android.widget.GridView;
import android.widget.Toolbar;

public class SetsActivity extends AppCompatActivity {
   private GridView sets_grid;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_sets);

       androidx.appcompat.widget.Toolbar toolbar = findViewById(R.id.set_toolbar);
       //setSupportActionBar(toolbar);

       String title = getIntent().getStringExtra("CATEGORY");
       getSupportActionBar().setTitle(title);

       getSupportActionBar().setDisplayHomeAsUpEnabled(true);

       sets_grid =  findViewById(R.id.sets_gridview);
       SetsAdapter adapter = new SetsAdapter(2);
       sets_grid.setAdapter(adapter);

   }

   @Override
   public boolean onOptionsItemSelected(@NonNull MenuItem item) {
      if(item.getItemId() == android.R.id.home)
      {
          SetsActivity.this.finish();
      }
       return super.onOptionsItemSelected(item);
   }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="100dp"
   android:layout_height="100dp"
   android:orientation="vertical"
   android:gravity="center"
   android:background="@drawable/round_corner"
   android:backgroundTint="#FFC3C3"
   >
   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="1"
       android:id="@+id/setNo_tv"
       android:textStyle="bold"
       android:textColor="@android:color/black"
       android:textSize="45sp"></TextView>
</LinearLayout>
我还创建了一个adapter类setAdapter,因此我也将发布它的代码:

package com.example.myquiz;

import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class SetsAdapter extends BaseAdapter {
   private int numOfSets;

   public SetsAdapter(int numOfSets) {
       this.numOfSets = numOfSets;
   }

   @Override
   public int getCount() {
       return 0;
   }

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

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

   @Override
   public View getView(int position, View convertView, ViewGroup parent) {

       View view;

       if (convertView == null) {
           view = LayoutInflater.from(parent.getContext()).inflate(R.layout.set_item_layout, parent, false);
       } else {
           view = convertView;
       }

       view.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(parent.getContext(),QuestionActivity.class);
               parent.getContext().startActivity(intent);
           }
       });

       ((TextView) view.findViewById(R.id.setNo_tv)).setText(String.valueOf(position + 1));


       return view;
}
}

下面是XML文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".SetsActivity"
   android:orientation="vertical">

   <androidx.appcompat.widget.Toolbar
       android:id="@+id/set_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="@color/colorPrimary"
       android:theme="@style/ThemeOverlay.AppCompat.Dark"
       ></androidx.appcompat.widget.Toolbar>

   <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="Sets"
       android:textSize="26sp"
       android:textStyle="bold"
       android:padding="16dp" />

   <GridView
       android:layout_width="match_parent"
       android:layout_height="0dp"
       android:id="@+id/sets_gridview"
       android:layout_weight="1"
       android:gravity="center"
       android:horizontalSpacing="16dp"
       android:verticalSpacing="16dp"
       android:padding="16dp"
       android:columnWidth="100dp"
       android:numColumns="auto_fit"
       ></GridView>

</LinearLayout>


以下是XML文件设置项目布局的代码:

package com.example.myquiz;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MenuItem;
import android.widget.GridView;
import android.widget.Toolbar;

public class SetsActivity extends AppCompatActivity {
   private GridView sets_grid;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_sets);

       androidx.appcompat.widget.Toolbar toolbar = findViewById(R.id.set_toolbar);
       //setSupportActionBar(toolbar);

       String title = getIntent().getStringExtra("CATEGORY");
       getSupportActionBar().setTitle(title);

       getSupportActionBar().setDisplayHomeAsUpEnabled(true);

       sets_grid =  findViewById(R.id.sets_gridview);
       SetsAdapter adapter = new SetsAdapter(2);
       sets_grid.setAdapter(adapter);

   }

   @Override
   public boolean onOptionsItemSelected(@NonNull MenuItem item) {
      if(item.getItemId() == android.R.id.home)
      {
          SetsActivity.this.finish();
      }
       return super.onOptionsItemSelected(item);
   }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="100dp"
   android:layout_height="100dp"
   android:orientation="vertical"
   android:gravity="center"
   android:background="@drawable/round_corner"
   android:backgroundTint="#FFC3C3"
   >
   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="1"
       android:id="@+id/setNo_tv"
       android:textStyle="bold"
       android:textColor="@android:color/black"
       android:textSize="45sp"></TextView>
</LinearLayout>

设置适配器中的
getCount()
方法应返回
numfosets
而不是
0

 @Override
 public int getCount() {
   return numOfSets;
 }

你试过使用调试器吗?@PiyushMaheswari嗯,没有。我是Android Studio的新手,而且我以前从未使用过调试器。请为
set\u item\u layout
添加xml。将Android:numColumns=“auto\u fit”的值更改为喜欢Android:numColumns=“3”我应该将其更改为什么?此外,我还为set_item_layout添加了XML。上面的更改现在起作用了吗?是的,起作用了!非常感谢你!我很乐意帮忙。