变量'viewholder'、'position'&model'是从内部类访问的,它需要声明为final,但当我将其声明为final时,在适配器中显示错误。我正在使用Firebase 11.2.0请帮助我
private void loadListFood(String categoryId) {
adapter=new FirebaseRecyclerAdapter<Food, FoodViewHolder>()
{
@Override
protected void onBindViewHolder(@NonNull FoodViewHolder viewHolder,int position, @NonNull Food model) {
viewHolder.food_name.setText(model.getName());
viewHolder.food_price.setText(String.format(" Rs. %s", model.getPrice().toString()));
Picasso.with(getBaseContext()).load(model.getImage()).into(viewHolder.food_image);
//ADD FAvorites
if (localdb.isFavorite(adapter.getRef(position).getKey()))
viewHolder.fav_image.setImageResource(R.drawable.ic_favorite_black_24dp);
//Click to change favorite state
viewHolder.fav_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!localdb.isFavorite(adapter.getRef(position).getKey()))
{
localdb.addToFavorites(adapter.getRef(position).getKey());
viewHolder.fav_image.setImageResource(R.drawable.ic_favorite_black_24dp);
Toast.makeText(FoodList.this, "" + model.getName() + "was Added To Favorites", Toast.LENGTH_SHORT).show();
} else {
localdb.removeFromFavorites(adapter.getRef(position).getKey());
viewHolder.fav_image.setImageResource(R.drawable.ic_favorite_border_black_24dp);
Toast.makeText(FoodList.this, "" + model.getName() + " was Removed From Favorites", Toast.LENGTH_SHORT).show();
}
}
});
不需要声明最终使用位置holder.getAdapterPosition()
,它将返回位置。
对于viewholder
,请将setOnClickListener移动到viewholder
类
private void loadListFood(String categoryId) {
adapter=new FirebaseRecyclerAdapter<Food, FoodViewHolder>()
{
@Override
protected void onBindViewHolder(@NonNull FoodViewHolder viewHolder,int position, @NonNull Food model) {
viewHolder.food_name.setText(model.getName());
viewHolder.food_price.setText(String.format(" Rs. %s", model.getPrice().toString()));
Picasso.with(getBaseContext()).load(model.getImage()).into(viewHolder.food_image);
//ADD FAvorites
if (localdb.isFavorite(adapter.getRef(viewHolder.getAdapterPosition()).getKey()))
viewHolder.fav_image.setImageResource(R.drawable.ic_favorite_black_24dp);
}
}
}
class FoodViewHolder extends RecyclerView.ViewHolder {
ImageView fav_image;
FoodViewHolder(View itemView) {
super(itemView);
fav_image = itemView.findViewById(R.id.fav_image);
fav_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!localdb.isFavorite(adapter.getRef(getAdapterPosition()).getKey()))
{
localdb.addToFavorites(adapter.getRef(getAdapterPosition()).getKey());
fav_image.setImageResource(R.drawable.ic_favorite_black_24dp);
Toast.makeText(FoodList.this, "" + model.getName() + "was Added To Favorites", Toast.LENGTH_SHORT).show();
} else {
localdb.removeFromFavorites(adapter.getRef(getAdapterPosition()).getKey());
fav_image.setImageResource(R.drawable.ic_favorite_border_black_24dp);
Toast.makeText(FoodList.this, "" + model.getName() + " was Removed From Favorites", Toast.LENGTH_SHORT).show();
}
}
});
}
我无法填充Firebase回收适配器。我最终想做的是,用户搜索一个名称,数据库中的结果将填充回收人员视图。 数据库结构如下所示: 要填充的代码如下所示,全部位于: 现在我只想让它填充数据库中的所有用户,但似乎什么都没有填充。 是一个。 这是UsersViewHolder类:公共静态类UsersViewHolder扩展了RecyclerView。视图持有者{View mView;TextView m
我收到以下错误:“RecyclerView:未连接适配器;跳过布局”,但我已连接适配器...我尝试了许多不同的方法,但我无法解决错误。 我正在使用Volley库获取数据。当我启动活动时,只有进度条可见,直到结束,我收到上面的Logcat消息。我在中添加了带有适配器的。你能帮我吗? 这是我的代码: 主活动 地震适配器 MainActivity.xml 地震法。xml
问题内容: 我创建了一个显示聊天消息的函数,遵循了教程,并且查看了Firebase列表适配器的文档,但是无论我做什么,都会出现此错误: 这是我的代码: 问题答案: 从FirebaseUI 3.0+版本中隐含以下内容 删除此: 您需要添加以下内容: 是您对列表适配器示例进行的查询: 更多信息在这里: 使用FirebaseUI填充ListView
我正试图让地图在我的Json适配器中工作。但不知何故,我总是收到错误信息: JAVAlang.NullPointerException:尝试调用虚拟方法“void”。所容纳之物上下文空对象引用上的startActivity(android.content.Intent) 这是我的第二个Android项目,我找不到我的错误。我希望你们中的一些人能帮助我。
我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我
我正在寻找在Android中使用列表适配器和Recyview适配器的区别。关于性能的任何不同,使用它们的利弊。