Android RecyclerView和CustomAdapter存在问题

Android RecyclerView和CustomAdapter存在问题,android,android-adapter,android-recyclerview,Android,Android Adapter,Android Recyclerview,我已经为我的recycler视图编写了这段代码,但它似乎不起作用(它给了我一些错误)。。。有人能告诉我我做错了什么吗 CustomAdapter.java: public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> { //Attributi: private Context context; private int[] immagineDio; private String[] nomeDi

我已经为我的recycler视图编写了这段代码,但它似乎不起作用(它给了我一些错误)。。。有人能告诉我我做错了什么吗

CustomAdapter.java:

public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> {

//Attributi:
private Context context;
private int[] immagineDio;
private String[] nomeDio;

//Costruttori:
public CustomAdapter(Context context, int[] immagineDio, String[] nomeDio){
    this.context = context;
    this.immagineDio = immagineDio;
    this.nomeDio = nomeDio;
}

//Metodi di istanza:
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return CustomViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_item, parent, false));
}

@Override
public void onBindViewHolder(@NonNull CustomViewHolder holder, int position) {
    holder.bind(immagineDio[position], nomeDio[position]);
}

@Override
public int getItemCount() {
    return nomeDio.length;
}

}
public class CustomViewHolder extends RecyclerView.ViewHolder {


 ImageView mFlag;
 TextView mName;

 public CustomViewHolder(@NonNull View itemView) {
     super(itemView);
     mFlag = itemView.findViewById(R.id.imageView);
     mName = itemView.findViewById(R.id.textView);
 }

 //binding data with UI
 void bind(int imageId, String name) {
     mFlag.setImageResource(imageId);
     mName.setText(name);
 } }
 public class ListViewActivity extends AppCompatActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.listview_layout);


     String[] nomeDei = {"Baldr","Borr","Bragi","Dagr","Dellingr","Eir","Eostre","Forseti","Freya","Freyr","Frigg","Fulla","Gefjun","Gerðr","Gullveig","Heimdallr","Hel","Hermóðr","Höðr","Hœnir","Iðunn","Itreksjóð","Jǫrð","Kvasir","Lóðurr","Lofn","Logi","Lýtir","Máni","Mímir","Móði","Nanna","Njörun","Njörðr","Nótt","Óðr","Rán","Ríg","Sága","Sif","Signe","Sigyn","Sinfjötli","Sjöfn","Skaði","Skirnir","Snotra","Sól","Syn","Thor","Týr","Ullr","Váli","Vár","Ve","Viðarr","Víli","Vör"};
     int[] immagineDei = {
             R.drawable.profilo_baldr, 
             R.drawable.profilo_borr,
             R.drawable.profilo_bragi,
             R.drawable.profilo_dagr,
             R.drawable.profilo_dellingr,
             R.drawable.profilo_eir, 
             R.drawable.profilo_eostre,
             R.drawable.profilo_forseti, 
             R.drawable.profilo_freya, 
             R.drawable.profilo_freyr,
             R.drawable.profilo_frigg,
             R.drawable.profilo_fulla,
             R.drawable.profilo_gefjun,
             R.drawable.profilo_geror,
             R.drawable.profilo_gullveig,
             R.drawable.profilo_heimdallr,
             R.drawable.profilo_hel, 
             R.drawable.profilo_hermoor,
             R.drawable.profilo_hoor,
             R.drawable.profilo_hoenir,
             R.drawable.profilo_iounn,
             R.drawable.profilo_itreksjoo,
             R.drawable.profilo_joro,
             R.drawable.profilo_kvasir,
             R.drawable.profilo_loourr,
             R.drawable.profilo_lofn,
             R.drawable.profilo_logi,
             R.drawable.profilo_lytir,
             R.drawable.profilo_mani,
             R.drawable.profilo_mimir,
             R.drawable.profilo_modi,
             R.drawable.profilo_nanna,
             R.drawable.profilo_njorun,
             R.drawable.profilo_njoror,
             R.drawable.profilo_nott,
             R.drawable.profilo_oor,
             R.drawable.profilo_ran,
             R.drawable.profilo_rig,
             R.drawable.profilo_saga,
             R.drawable.profilo_sif,
             R.drawable.profilo_signe,
             R.drawable.profilo_sigyn,
             R.drawable.profilo_sinfjotli,
             R.drawable.profilo_sjofn,
             R.drawable.profilo_skaoi,
             R.drawable.profilo_skirnir,
             R.drawable.profilo_snotra,
             R.drawable.profilo_sol,
             R.drawable.profilo_syn,
             R.drawable.profilo_thor,
             R.drawable.profilo_tyr,
             R.drawable.profilo_ullr, 
             R.drawable.profilo_vali,
             R.drawable.profilo_var,
             R.drawable.profilo_ve,
             R.drawable.profilo_vidar,
             R.drawable.profilo_vili,
             R.drawable.profilo_vor,
     };

     ListView listViewReference = findViewById(R.id.listView);
     CustomAdapter customAdapter = new CustomAdapter(ListViewActivity.this, immagineDei, nomeDei);
     listViewReference.setAdapter(customAdapter); //this line gives an error
 } }
ListViewActivity.java:

public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> {

//Attributi:
private Context context;
private int[] immagineDio;
private String[] nomeDio;

//Costruttori:
public CustomAdapter(Context context, int[] immagineDio, String[] nomeDio){
    this.context = context;
    this.immagineDio = immagineDio;
    this.nomeDio = nomeDio;
}

//Metodi di istanza:
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return CustomViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_item, parent, false));
}

@Override
public void onBindViewHolder(@NonNull CustomViewHolder holder, int position) {
    holder.bind(immagineDio[position], nomeDio[position]);
}

@Override
public int getItemCount() {
    return nomeDio.length;
}

}
public class CustomViewHolder extends RecyclerView.ViewHolder {


 ImageView mFlag;
 TextView mName;

 public CustomViewHolder(@NonNull View itemView) {
     super(itemView);
     mFlag = itemView.findViewById(R.id.imageView);
     mName = itemView.findViewById(R.id.textView);
 }

 //binding data with UI
 void bind(int imageId, String name) {
     mFlag.setImageResource(imageId);
     mName.setText(name);
 } }
 public class ListViewActivity extends AppCompatActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.listview_layout);


     String[] nomeDei = {"Baldr","Borr","Bragi","Dagr","Dellingr","Eir","Eostre","Forseti","Freya","Freyr","Frigg","Fulla","Gefjun","Gerðr","Gullveig","Heimdallr","Hel","Hermóðr","Höðr","Hœnir","Iðunn","Itreksjóð","Jǫrð","Kvasir","Lóðurr","Lofn","Logi","Lýtir","Máni","Mímir","Móði","Nanna","Njörun","Njörðr","Nótt","Óðr","Rán","Ríg","Sága","Sif","Signe","Sigyn","Sinfjötli","Sjöfn","Skaði","Skirnir","Snotra","Sól","Syn","Thor","Týr","Ullr","Váli","Vár","Ve","Viðarr","Víli","Vör"};
     int[] immagineDei = {
             R.drawable.profilo_baldr, 
             R.drawable.profilo_borr,
             R.drawable.profilo_bragi,
             R.drawable.profilo_dagr,
             R.drawable.profilo_dellingr,
             R.drawable.profilo_eir, 
             R.drawable.profilo_eostre,
             R.drawable.profilo_forseti, 
             R.drawable.profilo_freya, 
             R.drawable.profilo_freyr,
             R.drawable.profilo_frigg,
             R.drawable.profilo_fulla,
             R.drawable.profilo_gefjun,
             R.drawable.profilo_geror,
             R.drawable.profilo_gullveig,
             R.drawable.profilo_heimdallr,
             R.drawable.profilo_hel, 
             R.drawable.profilo_hermoor,
             R.drawable.profilo_hoor,
             R.drawable.profilo_hoenir,
             R.drawable.profilo_iounn,
             R.drawable.profilo_itreksjoo,
             R.drawable.profilo_joro,
             R.drawable.profilo_kvasir,
             R.drawable.profilo_loourr,
             R.drawable.profilo_lofn,
             R.drawable.profilo_logi,
             R.drawable.profilo_lytir,
             R.drawable.profilo_mani,
             R.drawable.profilo_mimir,
             R.drawable.profilo_modi,
             R.drawable.profilo_nanna,
             R.drawable.profilo_njorun,
             R.drawable.profilo_njoror,
             R.drawable.profilo_nott,
             R.drawable.profilo_oor,
             R.drawable.profilo_ran,
             R.drawable.profilo_rig,
             R.drawable.profilo_saga,
             R.drawable.profilo_sif,
             R.drawable.profilo_signe,
             R.drawable.profilo_sigyn,
             R.drawable.profilo_sinfjotli,
             R.drawable.profilo_sjofn,
             R.drawable.profilo_skaoi,
             R.drawable.profilo_skirnir,
             R.drawable.profilo_snotra,
             R.drawable.profilo_sol,
             R.drawable.profilo_syn,
             R.drawable.profilo_thor,
             R.drawable.profilo_tyr,
             R.drawable.profilo_ullr, 
             R.drawable.profilo_vali,
             R.drawable.profilo_var,
             R.drawable.profilo_ve,
             R.drawable.profilo_vidar,
             R.drawable.profilo_vili,
             R.drawable.profilo_vor,
     };

     ListView listViewReference = findViewById(R.id.listView);
     CustomAdapter customAdapter = new CustomAdapter(ListViewActivity.this, immagineDei, nomeDei);
     listViewReference.setAdapter(customAdapter); //this line gives an error
 } }
listview\u layout.xml:

public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> {

//Attributi:
private Context context;
private int[] immagineDio;
private String[] nomeDio;

//Costruttori:
public CustomAdapter(Context context, int[] immagineDio, String[] nomeDio){
    this.context = context;
    this.immagineDio = immagineDio;
    this.nomeDio = nomeDio;
}

//Metodi di istanza:
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return CustomViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_item, parent, false));
}

@Override
public void onBindViewHolder(@NonNull CustomViewHolder holder, int position) {
    holder.bind(immagineDio[position], nomeDio[position]);
}

@Override
public int getItemCount() {
    return nomeDio.length;
}

}
public class CustomViewHolder extends RecyclerView.ViewHolder {


 ImageView mFlag;
 TextView mName;

 public CustomViewHolder(@NonNull View itemView) {
     super(itemView);
     mFlag = itemView.findViewById(R.id.imageView);
     mName = itemView.findViewById(R.id.textView);
 }

 //binding data with UI
 void bind(int imageId, String name) {
     mFlag.setImageResource(imageId);
     mName.setText(name);
 } }
 public class ListViewActivity extends AppCompatActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.listview_layout);


     String[] nomeDei = {"Baldr","Borr","Bragi","Dagr","Dellingr","Eir","Eostre","Forseti","Freya","Freyr","Frigg","Fulla","Gefjun","Gerðr","Gullveig","Heimdallr","Hel","Hermóðr","Höðr","Hœnir","Iðunn","Itreksjóð","Jǫrð","Kvasir","Lóðurr","Lofn","Logi","Lýtir","Máni","Mímir","Móði","Nanna","Njörun","Njörðr","Nótt","Óðr","Rán","Ríg","Sága","Sif","Signe","Sigyn","Sinfjötli","Sjöfn","Skaði","Skirnir","Snotra","Sól","Syn","Thor","Týr","Ullr","Váli","Vár","Ve","Viðarr","Víli","Vör"};
     int[] immagineDei = {
             R.drawable.profilo_baldr, 
             R.drawable.profilo_borr,
             R.drawable.profilo_bragi,
             R.drawable.profilo_dagr,
             R.drawable.profilo_dellingr,
             R.drawable.profilo_eir, 
             R.drawable.profilo_eostre,
             R.drawable.profilo_forseti, 
             R.drawable.profilo_freya, 
             R.drawable.profilo_freyr,
             R.drawable.profilo_frigg,
             R.drawable.profilo_fulla,
             R.drawable.profilo_gefjun,
             R.drawable.profilo_geror,
             R.drawable.profilo_gullveig,
             R.drawable.profilo_heimdallr,
             R.drawable.profilo_hel, 
             R.drawable.profilo_hermoor,
             R.drawable.profilo_hoor,
             R.drawable.profilo_hoenir,
             R.drawable.profilo_iounn,
             R.drawable.profilo_itreksjoo,
             R.drawable.profilo_joro,
             R.drawable.profilo_kvasir,
             R.drawable.profilo_loourr,
             R.drawable.profilo_lofn,
             R.drawable.profilo_logi,
             R.drawable.profilo_lytir,
             R.drawable.profilo_mani,
             R.drawable.profilo_mimir,
             R.drawable.profilo_modi,
             R.drawable.profilo_nanna,
             R.drawable.profilo_njorun,
             R.drawable.profilo_njoror,
             R.drawable.profilo_nott,
             R.drawable.profilo_oor,
             R.drawable.profilo_ran,
             R.drawable.profilo_rig,
             R.drawable.profilo_saga,
             R.drawable.profilo_sif,
             R.drawable.profilo_signe,
             R.drawable.profilo_sigyn,
             R.drawable.profilo_sinfjotli,
             R.drawable.profilo_sjofn,
             R.drawable.profilo_skaoi,
             R.drawable.profilo_skirnir,
             R.drawable.profilo_snotra,
             R.drawable.profilo_sol,
             R.drawable.profilo_syn,
             R.drawable.profilo_thor,
             R.drawable.profilo_tyr,
             R.drawable.profilo_ullr, 
             R.drawable.profilo_vali,
             R.drawable.profilo_var,
             R.drawable.profilo_ve,
             R.drawable.profilo_vidar,
             R.drawable.profilo_vili,
             R.drawable.profilo_vor,
     };

     ListView listViewReference = findViewById(R.id.listView);
     CustomAdapter customAdapter = new CustomAdapter(ListViewActivity.this, immagineDei, nomeDei);
     listViewReference.setAdapter(customAdapter); //this line gives an error
 } }



您在XML文件中使用了RecyclerView,并尝试在Java代码文件中获取ListView


RecyclerView listViewReference=(RecyclerView)findViewById(R.id.listView)

您尚未对回收器视图使用布局管理器

是一个非常详细的很好的教程,介绍了如何实现recyclerview。请阅读它以便更好地理解。希望能有帮助

摘要:

public class CustomAdapter extends RecyclerView.Adapter<CustomViewHolder> {

//Attributi:
private Context context;
private int[] immagineDio;
private String[] nomeDio;

//Costruttori:
public CustomAdapter(Context context, int[] immagineDio, String[] nomeDio){
    this.context = context;
    this.immagineDio = immagineDio;
    this.nomeDio = nomeDio;
}

//Metodi di istanza:
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return CustomViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_item, parent, false));
}

@Override
public void onBindViewHolder(@NonNull CustomViewHolder holder, int position) {
    holder.bind(immagineDio[position], nomeDio[position]);
}

@Override
public int getItemCount() {
    return nomeDio.length;
}

}
public class CustomViewHolder extends RecyclerView.ViewHolder {


 ImageView mFlag;
 TextView mName;

 public CustomViewHolder(@NonNull View itemView) {
     super(itemView);
     mFlag = itemView.findViewById(R.id.imageView);
     mName = itemView.findViewById(R.id.textView);
 }

 //binding data with UI
 void bind(int imageId, String name) {
     mFlag.setImageResource(imageId);
     mName.setText(name);
 } }
 public class ListViewActivity extends AppCompatActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.listview_layout);


     String[] nomeDei = {"Baldr","Borr","Bragi","Dagr","Dellingr","Eir","Eostre","Forseti","Freya","Freyr","Frigg","Fulla","Gefjun","Gerðr","Gullveig","Heimdallr","Hel","Hermóðr","Höðr","Hœnir","Iðunn","Itreksjóð","Jǫrð","Kvasir","Lóðurr","Lofn","Logi","Lýtir","Máni","Mímir","Móði","Nanna","Njörun","Njörðr","Nótt","Óðr","Rán","Ríg","Sága","Sif","Signe","Sigyn","Sinfjötli","Sjöfn","Skaði","Skirnir","Snotra","Sól","Syn","Thor","Týr","Ullr","Váli","Vár","Ve","Viðarr","Víli","Vör"};
     int[] immagineDei = {
             R.drawable.profilo_baldr, 
             R.drawable.profilo_borr,
             R.drawable.profilo_bragi,
             R.drawable.profilo_dagr,
             R.drawable.profilo_dellingr,
             R.drawable.profilo_eir, 
             R.drawable.profilo_eostre,
             R.drawable.profilo_forseti, 
             R.drawable.profilo_freya, 
             R.drawable.profilo_freyr,
             R.drawable.profilo_frigg,
             R.drawable.profilo_fulla,
             R.drawable.profilo_gefjun,
             R.drawable.profilo_geror,
             R.drawable.profilo_gullveig,
             R.drawable.profilo_heimdallr,
             R.drawable.profilo_hel, 
             R.drawable.profilo_hermoor,
             R.drawable.profilo_hoor,
             R.drawable.profilo_hoenir,
             R.drawable.profilo_iounn,
             R.drawable.profilo_itreksjoo,
             R.drawable.profilo_joro,
             R.drawable.profilo_kvasir,
             R.drawable.profilo_loourr,
             R.drawable.profilo_lofn,
             R.drawable.profilo_logi,
             R.drawable.profilo_lytir,
             R.drawable.profilo_mani,
             R.drawable.profilo_mimir,
             R.drawable.profilo_modi,
             R.drawable.profilo_nanna,
             R.drawable.profilo_njorun,
             R.drawable.profilo_njoror,
             R.drawable.profilo_nott,
             R.drawable.profilo_oor,
             R.drawable.profilo_ran,
             R.drawable.profilo_rig,
             R.drawable.profilo_saga,
             R.drawable.profilo_sif,
             R.drawable.profilo_signe,
             R.drawable.profilo_sigyn,
             R.drawable.profilo_sinfjotli,
             R.drawable.profilo_sjofn,
             R.drawable.profilo_skaoi,
             R.drawable.profilo_skirnir,
             R.drawable.profilo_snotra,
             R.drawable.profilo_sol,
             R.drawable.profilo_syn,
             R.drawable.profilo_thor,
             R.drawable.profilo_tyr,
             R.drawable.profilo_ullr, 
             R.drawable.profilo_vali,
             R.drawable.profilo_var,
             R.drawable.profilo_ve,
             R.drawable.profilo_vidar,
             R.drawable.profilo_vili,
             R.drawable.profilo_vor,
     };

     ListView listViewReference = findViewById(R.id.listView);
     CustomAdapter customAdapter = new CustomAdapter(ListViewActivity.this, immagineDei, nomeDei);
     listViewReference.setAdapter(customAdapter); //this line gives an error
 } }
步骤1:下面是具有必要属性的RecyclerView小部件

<android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

你在哪里?您在哪里设置了
RecyclerView
上的
Layoutmanager
?遵循有关
RecyclerView
的一些教程。请给出错误日志并添加
Layout Manager
如下:
listViewReference.setLayoutManager(新的LinearLayoutManager(this))如果需要引用,请将其作为属性放入类中,以控制布局管理器中的某些所需信息