SquadMain.java
package com.example.gopalchettri.atletico_de_kolkata;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
public class SquadMain extends AppCompatActivity {
public List < SquadModel > Squad = new ArrayList < SquadModel > ();
RecyclerView recyclerView;
public ShowSquadAdapter sa;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_squad);
recyclerView = (RecyclerView) findViewById(R.id.rv_squad);
recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 2));
Squad = preparedata();
sa = new ShowSquadAdapter(getApplicationContext());
recyclerView.setAdapter(sa);
Log.e("Tag", "" + "size is : " + String.valueOf(Squad.size()));
}
public List < SquadModel > preparedata() {
List < SquadModel > squadModels = new ArrayList < > ();
squadModels.add(new SquadModel(R.drawable.p_juan, "Juan Calatayud"));
squadModels.add(new SquadModel(R.drawable.p_amrinder, "Amrinder Singh"));
squadModels.add(new SquadModel(R.drawable.p_kunzangbhutia, "Kunzang Bhutia"));
squadModels.add(new SquadModel(R.drawable.p_nallappan, "Nallappan Mohanraj"));
squadModels.add(new SquadModel(R.drawable.p_arnab, "Arnab Mondal"));
squadModels.add(new SquadModel(R.drawable.p_denzil, "Denzil Franco"));
squadModels.add(new SquadModel(R.drawable.p_syedrahim, "Syed Rahim Nabi"));
squadModels.add(new SquadModel(R.drawable.p_rinoanto, "Rino Anto"));
squadModels.add(new SquadModel(R.drawable.p_augustinfernandes, "Augustin Fernandes"));
squadModels.add(new SquadModel(R.drawable.p_jaimegavilan, "Jaime Gavilán"));
squadModels.add(new SquadModel(R.drawable.p_borja_, "Borja Fernández"));
squadModels.add(new SquadModel(R.drawable.p_clifford, "Clifford Miranda"));
squadModels.add(new SquadModel(R.drawable.p_arataizumi, "Arata Izumi"));
squadModels.add(new SquadModel(R.drawable.p_sameehgdoutie, "Sameehg Doutie"));
squadModels.add(new SquadModel(R.drawable.p_nato, "Ofentse Nato"));
squadModels.add(new SquadModel(R.drawable.p_jorge, "Jorge Alonso"));
squadModels.add(new SquadModel(R.drawable.p_baljit, "Baljit Sahni"));
squadModels.add(new SquadModel(R.drawable.p_hume, "Iain Hume"));
squadModels.add(new SquadModel(R.drawable.p_helder, "Hélder Postiga"));
squadModels.add(new SquadModel(R.drawable.p_nadong, "Nadong Bhutia"));
squadModels.add(new SquadModel(R.drawable.p_sushil, "Sushil Kumar Singh"));
squadModels.add(new SquadModel(R.drawable.p_rafique, "Mohammed Rafique"));
squadModels.add(new SquadModel(R.drawable.p_dejan, "Dejan Lekić"));
squadModels.add(new SquadModel(R.drawable.p_jose, "José Luis Espinosa Arroyo"));
squadModels.add(new SquadModel(R.drawable.p_stephen, "Stephen Pearson"));
squadModels.add(new SquadModel(R.drawable.c_molina, "José Francisco Molina"));
squadModels.add(new SquadModel(R.drawable.tm_avishek, "Avishek Bhattacharjee"));
Log.e("tag", String.valueOf(squadModels.size()));
sa.squad = squadModels;
sa.notifyDataSetChanged();
return squadModels;
}
}
SquadModel:
package com.example.gopalchettri.atletico_de_kolkata;
public class SquadModel {
String name;
int iconid;
public SquadModel(int iconid, String name) {
super();
this.name = name;
this.iconid = iconid;
}
public String getName() {
return name;
}
public int getIconid() {
return iconid;
}
}
ShowSquadAdapter:
package com.example.gopalchettri.atletico_de_kolkata;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class ShowSquadAdapter extends RecyclerView.Adapter < ShowSquadAdapter.ViewHolder > {
Context con;
public List < SquadModel > squad = new ArrayList < SquadModel > ();
public ShowSquadAdapter(Context con) {
this.con = con;
}
@Override
public ShowSquadAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(con).inflate(R.layout.card_squad, parent, false);
ViewHolder vh = new ViewHolder(view);
return vh;
}
@Override
public void onBindViewHolder(ShowSquadAdapter.ViewHolder holder, int position) {
SquadModel squadModel = squad.get(position);
holder.imvplayer.setImageResource(squadModel.getIconid());
holder.tvplayername.setText(squadModel.getName());
}
@Override
public int getItemCount() {
Log.e("tag", String.valueOf(squad.size()));
return squad.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView tvplayername;
ImageView imvplayer;
public ViewHolder(View itemView) {
super(itemView);
imvplayer = (ImageView) itemView.findViewById(R.id.squad);
tvplayername = (TextView) itemView.findViewById(R.id.tvsquad);
}
}
}
错误
error: Caused by: java.lang.NullPointerException: Attempt to write to field 'java.util.List com.example.gopalchettri.atletico_de_kolkata.ShowSquadAdapter.squad'
on a null object reference
at com.example.gopalchettri.atletico_de_kolkata.SquadMain.preparedata(SquadMain.java: 69)
at com.example.gopalchettri.atletico_de_kolkata.SquadMain.onCreate(SquadMain.java: 29)
at android.app.Activity.performCreate(Activity.java: 5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2360)
at android.app.ActivityThread.access$800(ActivityThread.java: 144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1278)
at android.os.Handler.dispatchMessage(Handler.java: 102)
at android.os.Looper.loop(Looper.java: 135)
at android.app.ActivityThread.main(ActivityThread.java: 5221)
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: 899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 694)
答案 0 :(得分:0)
在onCreate()方法中,在方法 preparedata()之后调用 sa = new ShowSquadAdapter(getApplicationContext()); 。因此 preparedata()中的 sa.squad = squadModels; 将抛出 NullPointerExeption 。
首先必须初始化ShowSquadAdapter:
sa = new ShowSquadAdapter(getApplicationContext());
Squad = preparedata();