В моем приложении пользователь должен иметь возможность выбирать из 3 различных категорий (из 8), которые генерируются случайным образом. Для этого я использовал подход, описанный здесь .
Я не знаю, как использовать этот подход, чтобы использовать извлеченные документы для вставки их в TextViews в моей категории Activity. Я создал класс категории для хранения полученных документов из Firestore, но я также не знаю, является ли это даже правильным подходом. Я был бы очень признателен за каждый совет!
Вот моя категория деятельности, где 3 документа получаются и в конце должны отображаться в TextViews:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_category_selection, container, false);
tvCategory1 = view.findViewById(R.id.text_view_category_1);
tvCategory2 = view.findViewById(R.id.text_view_category_2);
tvCategory3 = view.findViewById(R.id.text_view_category_3);
textViewCategoryRound = view.findViewById(R.id.text_view_category_round);
imageCategory1 = view.findViewById(R.id.image_category_1);
imageCategory2 = view.findViewById(R.id.image_category_2);
imageCategory3 = view.findViewById(R.id.image_category_3);
categoryCollectionRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<Category> categoryList = new ArrayList<>();
for (DocumentSnapshot document : task.getResult()) {
Category category = document.toObject(Category.class);
categoryList.add(category);
}
int categoryListSize = categoryList.size();
List<Category> randomCategoryList = new ArrayList<>();
for (int i = 0; i < categoryListSize; i++) {
Category randomCategory = categoryList.get(new Random().nextInt(categoryListSize));
if (!randomCategoryList.contains(randomCategory)) {
randomCategoryList.add(randomCategory);
if (randomCategoryList.size() == 3) {
break;
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
}
}
});
return view;
}
}
Вот класс категории где, я надеюсь, я правильно храню документы:
public class Category {
public String category_name;
public String picture_id;
public Category (){
}
public String getPicture_id() {
return picture_id;
}
public void setPicture_id(String picture_id) {
this.picture_id = picture_id;
}
public String getCategory_name() {
return category_name;
}
public void setCategory_name(String category_name) {
this.category_name = category_name;
}
public Category(String category_name){
this.category_name = category_name;
}
}
Вот как я структурировал мою коллекцию категорий (есть 8 документов / категорий):