これはデータベースとしてFirebaseを使用し、画像を画面に読み込むためにPicassoを使用しています。私がログインした後、私は各カテゴリーの画像と名前を見ることができません。画面に表示される画像の種類と名前を表示するには
私はセッターとゲッターとモデル名「カテゴリ」を使用しているが、これらのメッセージは、私のlogcatに来る続ける:
私のモデルは、現時点では次のようになります。
public class Category {
private String name, image;
public Category() {
}
public Category(String name, String image) {
this.name = name;
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
これは私のデータベースのサンプルです。カテゴリ画像リンクとその名前が表示されます。
カテゴリのリストは、フラグメントに表示することになっています。これは私の断片クラスです。
public class CategoryFragment extends Fragment {
View myFragment;
RecyclerView categoryList;
RecyclerView.LayoutManager layoutManager;
FirebaseRecyclerAdapter<Category, CategoryViewHolder> adapter;
// Firebase Tings
FirebaseDatabase database;
DatabaseReference categories;
public static CategoryFragment newInstance() {
CategoryFragment categoryFragment = new CategoryFragment();
return categoryFragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
database = FirebaseDatabase.getInstance();
categories = database.getReference("Category");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
myFragment = inflater.inflate(R.layout.fragment_category, container, false);
categoryList = (RecyclerView) myFragment.findViewById(R.id.categoryList);
categoryList.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(container.getContext());
categoryList.setLayoutManager(layoutManager);
loadCategories();
return myFragment;
}
private void loadCategories() {
adapter = new FirebaseRecyclerAdapter<Category, CategoryViewHolder>(
Category.class,
R.layout.category_item,
CategoryViewHolder.class,
categories
) {
@Override
protected void populateViewHolder(CategoryViewHolder viewHolder, final Category model, int position) {
viewHolder.tvCategoryName.setText(model.getName());
Picasso.with(getActivity())
.load(model.getImage())
.into(viewHolder.ivCategoryImage);
viewHolder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
Toast.makeText(getActivity(), String.format("%s | %s", adapter.getRef(position).getKey(), model.getName()), Toast.LENGTH_SHORT).show();
}
});
}
};
adapter.notifyDataSetChanged();
categoryList.setAdapter(adapter);
}
}
異なるソリューションは、カテゴリ画像と名前が、運を見るために私が見てきた
public class CategoryViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView tvCategoryName;
public ImageView ivCategoryImage;
private ItemClickListener itemClickListener;
public CategoryViewHolder(View itemView) {
super(itemView);
ivCategoryImage = (ImageView) itemView.findViewById(R.id.ivCategoryImage);
tvCategoryName = (TextView) itemView.findViewById(R.id.tvCategoryName);
itemView.setOnClickListener(this);
}
public void setItemClickListener(ItemClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
}
@Override
public void onClick(View view) {
itemClickListener.onClick(view, getAdapterPosition(), false);
}
}
これは私のCategoryViewHolderクラスです。
UPDATE: 私はdatabase to this structure
を更新した私は、デバイス
categories=FirebaseDatabase.getInstance().getReference().child("Category");
/*database = FirebaseDatabase.getInstance();
categories = database.getReference("Category");*/
しかし、まだありません成功時にデータを示し、これらの2つの方法を使用して試してみました。
代わりにthe same errorsと表示されます。どのような形ででもモデルを変更していません。
ありがとうございました。
P.S以前に言及したソリューションのおかげで、それはうまくいかなかった。
これ以上ヘルプがあれば十分です。あなたのリンクから