Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RecipeListFragment extends Fragment implements AdapterView.OnItemClickListener { //Example with custom Class RecipeList
- private Map<String, Recipe> mListOfRecipies;
- private ListView mRecipeListView;
- private ArrayAdapter<String> mListOfRecipiesAdapter;
- private OnRecipeItemClickListener mOnRecipeItemClickListener;
- private Repository<Recipe> mFirebaseRepository;
- public RecipeListFragment() {
- // Required empty public constructor
- }
- public static RecipeListFragment newInstance() {
- return new RecipeListFragment();
- }
- private void init() {
- mListOfRecipiesAdapter = new ArrayAdapter<>(
- getContext(),
- android.R.layout.simple_list_item_1
- );
- mListOfRecipies = new HashMap<>();
- mFirebaseRepository = new FirebaseRepository<>(Recipe.class);
- //todo to be moved in a repository class!
- mFirebaseRepository.getAll(recipes -> {
- for (Recipe recipe: recipes) {
- if (recipe.getDeleted()) { //instead of deleting from firebase
- continue;
- }
- mListOfRecipiesAdapter.add(recipe.name);
- mListOfRecipies.put(recipe.name, recipe);
- }
- });
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_recipe_list, container, false);
- mRecipeListView = view.findViewById(R.id.lv_recipe_list);
- init();
- mRecipeListView.setAdapter(mListOfRecipiesAdapter);
- mRecipeListView.setOnItemClickListener(this);
- return view;
- }
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
- //position which was clicked in the adapter
- String keyName = mListOfRecipiesAdapter.getItem(position);
- Recipe recipe = mListOfRecipies.get(keyName);
- mOnRecipeItemClickListener.onClick(recipe);
- }
- public void setOnRecipeItemClickListener(OnRecipeItemClickListener listener) {
- mOnRecipeItemClickListener = listener;
- }
- public interface OnRecipeItemClickListener {
- void onClick(Recipe recipe);
- }
- }
- /*
- ~~~
- */
- //implements interface from RecipeListFragment and parse the Recipe recipe via Intent
- public class ListAllFragment extends Fragment implements RecipeListFragment.OnRecipeItemClickListener {
- private RecipeListFragment mRecipeListFragment;
- public ListAllFragment() {
- // Required empty public constructor
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_list_all, container, false);
- mRecipeListFragment = RecipeListFragment.newInstance();
- getFragmentManager()
- .beginTransaction()
- .replace(R.id.listAll_Fragment, mRecipeListFragment)
- .commit();
- mRecipeListFragment.setOnRecipeItemClickListener(this);
- return view;
- }
- public static ListAllFragment newInstance() {
- return new ListAllFragment();
- }
- @Override
- public void onClick(Recipe recipe) {
- Intent intent = new Intent(
- getContext(),
- RecipeDetailsActivity.class
- );
- intent.putExtra("NAME_Recipe", recipe); //need to get this extra in RecipeDetailsActivity
- intent.putExtra("navigate", "details");
- startActivity(intent);
- }
- }
- /*
- ~~~
- */
- //get the intent from the previous class and uses the parsed recipe
- public class RecipeDetailsActivity extends BaseDrawerActivity {
- public static final long IDENTIFIER = 2;
- private Fragment mDestinationFragment;
- private Recipe mRecipe;
- private Toolbar mToolbar;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_recipe_details);
- mToolbar = findViewById(R.id.drawer_toolbar);
- setSupportActionBar(mToolbar);
- Intent intent = getIntent();
- mRecipe = (Recipe) intent.getSerializableExtra("NAME_Recipe");
- String navigation = intent.getStringExtra("navigate");
- if (navigation.equals("details")) { //goes for DetailsRecipeFragment or RemoveThisRecipeFragment
- mDestinationFragment = RecipeDetailsFragment.newInstance(mRecipe);
- } else {
- mDestinationFragment = RemoveThisRecipeFragment.newInstance(mRecipe);
- }
- getFragmentManager()
- .beginTransaction()
- .replace(R.id.details_or_remove_recipe, mDestinationFragment)
- .commit();
- }
- @Override
- protected long getIdentifier() {
- return IDENTIFIER;
- }
- @Override
- protected Toolbar getDrawerToolbar() {
- return mToolbar;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement