Devo creare un negozio di bevande online in Android Studio con java, e in teoria devo inserire i prodotti in modo che i clienti possano visualizzarli attraverso un elenco (ho usato un recycleview) e devo farlo con un file txt. I dati presenti nel file sono: nome, prezzo e immagine del prodotto.
L'idea è di fare come in foto:

Ho provato a fare cosi ma non mi funziona:
L'idea è di fare come in foto:

Ho provato a fare cosi ma non mi funziona:
Java:
public class CocktailAdaptor extends RecyclerView.Adapter<CocktailAdaptor.ViewHolder> {
ArrayList<DrinkDomain> cocktailFood;
public CocktailAdaptor(ArrayList<DrinkDomain> drinkDomains) {
this.cocktailFood = drinkDomains;
}
@NonNull
@Override
public CocktailAdaptor.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewholder_cocktail,parent,false);
return new CocktailAdaptor.ViewHolder(inflate);
}
@Override
public void onBindViewHolder(@NonNull CocktailAdaptor.ViewHolder holder, int position) {
holder.title.setText(cocktailFood.get(position).getTitle());
holder.fee.setText(String.valueOf(cocktailFood.get(position).getFee()));
}
@Override
public int getItemCount() {
return cocktailFood.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView title, fee;
ImageView pic;
Button addBtn;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
fee = itemView.findViewById(R.id.fee);
pic = itemView.findViewById(R.id.pic);
addBtn = itemView.findViewById(R.id.add);
}
}
}
Java:
public class DrinksFragment extends Fragment {
private RecyclerView.Adapter adapter;
private RecyclerView recyclerViewCategoryList;
private RecyclerView recyclerViewCocktailList;
private RecyclerView recyclerViewShakeList;
private FragmentDrinksBinding binding;
TextView category;
TextView cocktail;
TextView shake;
RecyclerView recyclerViewcategory;
RecyclerView recyclerViewcocktail;
RecyclerView recyclerViewshake;
TextView text_head;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
DrinksViewModel drinksViewModel =
new ViewModelProvider(this).get(DrinksViewModel.class);
binding = FragmentDrinksBinding.inflate(inflater, container, false);
View root = binding.getRoot();
text_head = root.findViewById(R.id.text_head);
category = root.findViewById(R.id.fragment_drinks_category);
cocktail = root.findViewById(R.id.fragment_drinks_Cocktail);
shake = root.findViewById(R.id.fragment_drinks_Shake);
recyclerViewcategory = root.findViewById(R.id.fragment_drinks_recyclerView_category);
recyclerViewcocktail = root.findViewById(R.id.fragment_drinks_recyclerView_cocktail);
recyclerViewshake = root.findViewById(R.id.fragment_drinks_recyclerView_shake);
if(UserSingleton.getLogged()){
text_head.setVisibility(View.INVISIBLE);
category.setVisibility(View.VISIBLE);
cocktail.setVisibility(View.VISIBLE);
shake.setVisibility(View.VISIBLE);
recyclerViewcategory.setVisibility(View.VISIBLE);
recyclerViewcocktail.setVisibility(View.VISIBLE);
recyclerViewshake.setVisibility(View.VISIBLE);
}else{
text_head.setVisibility(View.VISIBLE);
category.setVisibility(View.VISIBLE);
shake.setVisibility(View.INVISIBLE);
cocktail.setVisibility(View.INVISIBLE);
recyclerViewcategory.setVisibility(View.VISIBLE);
recyclerViewcocktail.setVisibility(View.INVISIBLE);
recyclerViewshake.setVisibility(View.INVISIBLE);
}
recyclerViewCategoryList = root.findViewById(R.id.fragment_drinks_recyclerView_category);
recyclerViewCocktailList = root.findViewById(R.id.fragment_drinks_recyclerView_cocktail);
recyclerViewShakeList = root.findViewById(R.id.fragment_drinks_recyclerView_shake);
recyclerViewCategory();
recyclerViewCocktail();
recyclerViewShake();
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
private void recyclerViewCategory(){
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,false);
recyclerViewCategoryList.setLayoutManager(linearLayoutManager);
ArrayList<CategoryDomain> category = new ArrayList<>();
category.add(new CategoryDomain("Cocktail", "cocktail" ));
category.add(new CategoryDomain("Shake", "shake" ));
adapter = new CategoryAdaptor(category);
recyclerViewCategoryList.setAdapter(adapter);
}
private void recyclerViewCocktail(){
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,false);
recyclerViewCocktailList.setLayoutManager(linearLayoutManager);
File file = getContext().getApplicationContext()
.getFileStreamPath("cocktail");
String lineFromfile;
if (file.exists()) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(getContext().openFileInput("cocktail")));
while ((lineFromfile = reader.readLine()) != null) {
StringTokenizer tokenizer = new StringTokenizer(lineFromfile, ",");
DrinkDomain drinkDomain = new DrinkDomain(tokenizer.nextToken(), tokenizer.nextToken(), (Double.parseDouble(tokenizer.nextToken())));
drinkDomains.add(drinkDomain);
}
reader.close();
setTextToTextView();
} catch (IOException e) {
}
}
//INSERIRE DA FILE !!!
/* ArrayList<DrinkDomain> cocktail = new ArrayList<>();
cocktail.add(new DrinkDomain("Margarita", "cocktail", 15.00));
cocktail.add(new DrinkDomain("Bla", "cocktail" ,17.00));
cocktail.add(new DrinkDomain("Bla", "cocktail" ,17.00));
cocktail.add(new DrinkDomain("Bla", "cocktail" ,17.65));
cocktail.add(new DrinkDomain("Bla", "cocktail" ,17.00));
adapter2 = new DrinkAdaptor(cocktail); */
recyclerViewCocktailList.setAdapter(adapter2);
}
private void setTextToTextView() {
String text = "";
for (int i = 0; i < drinkDomains.size(); i++) {
text = text + drinkDomains.get(i)
.getTitle() + "," + drinkDomains.get(i)
.getFee() + "\n";
}
title.setText(text);
fee.setText(text);
}
private void recyclerViewShake(){
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,false);
recyclerViewShakeList.setLayoutManager(linearLayoutManager);
//INSERIRE DA FILE !!!
ArrayList<DrinkDomain> shake = new ArrayList<>();
shake.add(new DrinkDomain("tè", "shake", 4.50));
shake.add(new DrinkDomain("frullato", "shake" ,55.00));
shake.add(new DrinkDomain("frullato", "shake" ,55.00));
shake.add(new DrinkDomain("frullato", "shake" ,55.00));
shake.add(new DrinkDomain("frullato", "shake" ,55.00));
shake.add(new DrinkDomain("frullato", "shake" ,55.00));
adapter3 = new DrinkAdaptor(shake);
recyclerViewShakeList.setAdapter(adapter3);
}
}
Ultima modifica: