Я включил ниже класс RecipeCategories, а также класс RecipeCategoriesAdapter.
Код: Выделить всё
package app.android.easyvegan;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import android.view.Menu;
import android.view.MenuItem;
public class RecipeCategories extends AppCompatActivity implements RecipeCategoriesSelectionListener {
public void onCreate(Bundle savedInstanceState) {
Utilities.SetTheme(getSharedPreferences("Themes", 0).getInt("theme", 0));
Utilities.onActivityCreateSetTheme(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.recipe_categories);
setSupportActionBar(findViewById(R.id.topToolbar));
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
RecyclerView recyclerView = findViewById(R.id.recipeCategoriesRecycler);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
List recipeCategoriesList = Arrays.asList(getResources().getStringArray(R.array.recipe_categories));
RecipeCategoriesAdapter adapter = new RecipeCategoriesAdapter(recipeCategoriesList, this);
recyclerView.setAdapter(adapter);
}
public boolean onCreateOptionsMenu (Menu menu){
getMenuInflater().inflate(R.menu.menu_recipe_categories, menu);
return true;
}
public boolean onOptionsItemSelected (MenuItem item){
SharedPreferences.Editor editor = getSharedPreferences("Themes", 0).edit();
switch (item.getItemId()) {
case 2131296477:
startActivity(new Intent(this, HomeScreen.class));
break;
case 2131296666:
Intent intent = new Intent("android.intent.action.SEND");
intent.setType("text/plain");
intent.putExtra("android.intent.extra.SUBJECT", "EasyVegan Recipes");
intent.putExtra("android.intent.extra.TEXT", "EasyVegan: Plant-Based Recipes App");
startActivity(Intent.createChooser(intent, "Share using"));
break;
case 2131296782:
Utilities.changeToTheme(this, 0);
editor.putInt("theme", 0);
editor.apply();
break;
case 2131296780:
Utilities.changeToTheme(this, 1);
editor.putInt("theme", 1);
editor.apply();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onRecipeCategorySelected(String recipeCategory)
{
Intent intent = new Intent(this, BreakfastEntrees.class);
startActivity(intent);
}
}
__________________________________________________________________________________
package app.android.easyvegan;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class RecipeCategoriesAdapter extends RecyclerView.Adapter {
private final List recipeCategoriesList;
private final RecipeCategoriesSelectionListener selectionListener;
public RecipeCategoriesAdapter(List recipeCategoriesList, Context context) {
this.recipeCategoriesList = recipeCategoriesList;
selectionListener = (RecipeCategories) context;
}
@NonNull
@Override
public RecipeCategoriesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
TextView textView = (TextView) LayoutInflater.from(parent.getContext()).inflate(R.layout.recipe_categories_recycler,parent,false);
return new RecipeCategoriesViewHolder(textView);
}
@Override
public void onBindViewHolder(@NonNull RecipeCategoriesViewHolder holder, int position) {
String recipeCategory = recipeCategoriesList.get(position);
holder.recipeCategory.setText(recipeCategory);
holder.recipeCategory.setOnClickListener(view -> selectionListener.onRecipeCategorySelected(recipeCategoriesList.get(holder.getAdapterPosition())));
}
@Override
public int getItemCount() {
return recipeCategoriesList.size();
}
public static class RecipeCategoriesViewHolder extends RecyclerView.ViewHolder
{
public TextView recipeCategory;
public RecipeCategoriesViewHolder (@NonNull TextView itemView) {
super(itemView);
recipeCategory = itemView;
}
}
}
Я знаю, что в OnRecipeCategorySelected я запрограммировал запуск только BreakfastEntreesActivity. Я просто не знаю, как это настроить, чтобы запускать разные действия для каждой категории рецептов.
Подробнее здесь: https://stackoverflow.com/questions/786 ... e-activity
Мобильная версия