【发布时间】:2019-11-23 21:10:23
【问题描述】:
我正在使用库来获取 recyclerView 的单击项目,项目单击工作正常,但是当我尝试获取数据时,即 models.get(position).getName();它返回一个空值。
Model 是一个包含 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;
}
}
当我单击一个项目并尝试获取相应的文本时,例如: 字符串类别=models.get(position).getCategory(); 它返回空值。 我正在使用 try{} catch 块
【问题讨论】:
-
我认为您的 ArrayList 是空的,并且该位置没有数据,所以这就是它返回 null 的原因
-
请发布您的适配器类和活动类
-
那里究竟是什么?你有什么异常吗?
-
发布适配器类,以便我们可以帮助您和模型类。
-
问题已更新,请检查适配器和支架类。
标签: android android-recyclerview onitemclicklistener