我正在使用库获取recyclerView的单击项,单击项工作正常,但是当我尝试获取数据时,即models.get(position).getName();它返回一个空值。
模型是一个包含getter和setter方法的ArrayList类。
RecycleClick.addTo(mRecyclerView).setOnItemClickListener(new RecycleClick.OnItemClickListener()
{
@Override
public void onItemClicked(RecyclerView recyclerView, int
position, View v)
{
try
{
String category=models.get(position).getCategory();
Toast.makeText(v.getContext(),category,Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
Toast.makeText(HomeActivity.this,"exception "+e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
适配器类:
公共类MyAdapter扩展了RecyclerView.Adapter {
Context c;
ArrayList<ModelHome> models;
public MyAdapter(Context c, ArrayList<ModelHome> models) {
this.c = c;
this.models = models;
}
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i)
{
View v= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.home_screen_row,null);
return new MyHolder(v);
}
@Override
public void onBindViewHolder(@NonNull final MyHolder myHolder, int i)
{
myHolder.category.setText(models.get(i).category);
try
{
Picasso.get().load(models.get(i).image).into(myHolder.Image);
}
catch (Exception e)
{
Picasso.get().load(R.drawable.loading).into(myHolder.Image);
}
}
@Override
public int getItemCount() {
return models.size();
}
}
持有人类别:
公共类MyHolder扩展了RecyclerView.ViewHolder {
TextView category;
ImageView Image;
RelativeLayout relativeLayout;
public MyHolder(@NonNull View itemView) {
super(itemView);
this.category=itemView.findViewById(R.id.image_title_home);
this.Image=itemView.findViewById(R.id.firebaseImage_home);
}
}
模型类:
公共类ModelHome { 字符串类别,图片;
public ModelHome(String category, String image) {
this.category = category;
this.image = image;
}
public ModelHome() {
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
当我单击一个项目并尝试获取相应的文本时,例如: 字符串category = models.get(position).getCategory(); 它返回null。 我正在使用try {} catch block
答案 0 :(得分:0)
您是否在RecyclerView适配器中设置了任何数据?请首先检查一下。
答案 1 :(得分:0)
我通过消除本地ArrayList对象解决了这个问题, 全局使用ModelHome对象,该问题将得到解决。