如何修复NullPointerException? [重复]

问题描述 投票:0回答:1
im是android程序设计中的新增功能,我想将JSON添加到我的recyclerview中,我没有使适配器没有跳过跳过布局,但我的CustomAdapter也给了我NullPointerException。

我的CustomAdapter

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.CustomViewHolder> { private List<RetroProduct> dataList; private Context context; CustomAdapter(Context context, List< RetroProduct > dataList){ this.context = context; this.dataList = dataList; } class CustomViewHolder extends RecyclerView.ViewHolder { final View mView; TextView goodsId,categoryTitle,number,title1,title2; CustomViewHolder(View itemView) { super(itemView); mView = itemView; goodsId = mView.findViewById(R.id.tv_goodsId); categoryTitle = mView.findViewById(R.id.tv_categoryTitle); number = mView.findViewById(R.id.tv_number); title1 = mView.findViewById(R.id.tv_title1); title2 = mView.findViewById(R.id.tv_title2); } } @NonNull @Override public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); View view = layoutInflater.inflate(R.layout.item_row, parent, false); return new CustomViewHolder(view); } @Override public void onBindViewHolder(CustomViewHolder holder, int position) { holder.goodsId.setText(dataList.get(position).getGoodsId()); holder.categoryTitle.setText(dataList.get(position).getCategoryTitle()); holder.title1.setText(dataList.get(position).getTitle1()); holder.title2.setText(dataList.get(position).getTitle2()); holder.number.setText(dataList.get(position).getNumber()); } @Override public int getItemCount() { return dataList.size(); } }

并且我在]上获得NullPointerException

return dataList.size();

我现在应该做什么?给它值,或者我不知道。

MainActivity

public class MainActivity extends AppCompatActivity { private CustomAdapter adapter; private RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GetDataService service = RetrofitClientInstance.getRetrofitInstance() .create(GetDataService.class); Call< List<RetroProduct> > call = service.getAllProducts(); call.enqueue(new Callback<List<RetroProduct>>() { @Override public void onResponse(Call<List<RetroProduct>> call, Response<List<RetroProduct>> response) { generateDataList(response.body()); LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this); recyclerView.setLayoutManager(manager); recyclerView.setHasFixedSize(true); recyclerView.setAdapter(adapter); adapter.notifyDataSetChanged(); } @Override public void onFailure(Call<List<RetroProduct>> call, Throwable t) { Toast.makeText(MainActivity.this, "null", Toast.LENGTH_SHORT).show(); } }); } private void generateDataList(List<RetroProduct> productList) { recyclerView = findViewById(R.id.recycler_view); adapter = new CustomAdapter(this,productList); } }

im是android编程中的新增功能,我想将JSON添加到我的recyclerview中,我没有使适配器没有跳过跳过布局,但我的CustomAdapter也给了我NullPointerException。我的...
android-recyclerview retrofit
1个回答
0
投票
@Override public int getItemCount() { if(dataList!=null) return dataList.size(); else return 0; }
© www.soinside.com 2019 - 2024. All rights reserved.