Advertisement
Guest User

Untitled

a guest
Sep 4th, 2018
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.07 KB | None | 0 0
  1. package com.whatamidoingwithmylife.splitbill;
  2.  
  3. import android.app.Activity;
  4. import android.arch.lifecycle.Observer;
  5. import android.arch.lifecycle.ViewModelProviders;
  6. import android.os.Bundle;
  7. import android.support.v4.app.Fragment;
  8. import android.util.Log;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.AdapterView;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.Spinner;
  15.  
  16. public class PlaceholderFragment extends Fragment {
  17.     /**
  18.      * The fragment argument representing the section number for this
  19.      * fragment.
  20.      */
  21.     private static final String TAG = "SplitBill/Fragment";
  22.     private static final String ARG_SECTION_NUMBER = "section_number";
  23.     private final Fragment f = this;
  24.  
  25.     MenuTitles mCallback;
  26.  
  27.  
  28.     public PlaceholderFragment() {
  29.     }
  30.  
  31.     public interface MenuTitles {
  32.         public void onStringReceived(String[] strings);
  33.     }
  34.  
  35.     /**
  36.      * Returns a new instance of this fragment for the given section
  37.      * number.
  38.      */
  39.     public static PlaceholderFragment newInstance(int sectionNumber) {
  40.         PlaceholderFragment fragment = new PlaceholderFragment();
  41.         Bundle args = new Bundle();
  42.         args.putInt(ARG_SECTION_NUMBER, sectionNumber);
  43.         fragment.setArguments(args);
  44.         return fragment;
  45.     }
  46.  
  47.     @Override
  48.     public void onAttach(Activity activity) {
  49.         super.onAttach(activity);
  50.  
  51.         // This makes sure that the container activity has implemented
  52.         // the callback interface. If not, it throws an exception
  53.         try {
  54.             mCallback = (MenuTitles) activity;
  55.         } catch (ClassCastException e) {
  56.             throw new ClassCastException(activity.toString()
  57.                     + " must implement OnHeadlineSelectedListener");
  58.         }
  59.     }
  60.  
  61.     @Override
  62.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  63.  
  64.         final View rootView = inflater.inflate(R.layout.fragment_menu, container, false);
  65.         final MenuActivity menuAct = (MenuActivity) getActivity();
  66.         final MenuViewModel viewModel = ViewModelProviders.of(this, new MenuViewModelFactory(menuAct.getApplication(), MenuActivity.ResID)).get(MenuViewModel.class);
  67.  
  68.         viewModel.getAllMenuTitles().observe(this, new Observer<String[]>() {
  69.             @Override
  70.             public void onChanged(String[] strings) {
  71.                 final Spinner spinner = rootView.findViewById(R.id.spinner);
  72.                 final SubMenuViewModel subMenuViewModel = ViewModelProviders.of(f, new SubMenuViewModelFactory(menuAct.getApplication(), spinner.getSelectedItemPosition() + 1)).get(SubMenuViewModel.class);
  73.  
  74.                 ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), R.layout.support_simple_spinner_dropdown_item, strings);
  75.                 adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
  76.                 spinner.setAdapter(adapter);
  77.  
  78.                 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  79.                     @Override
  80.                     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
  81.                         doTheWigWam(spinner.getSelectedItemPosition());
  82.                     }
  83.  
  84.                     @Override
  85.                     public void onNothingSelected(AdapterView<?> adapterView) {
  86.  
  87.                     }
  88.                 });
  89.             }
  90.         });
  91.  
  92.         return rootView;
  93.     }
  94.  
  95.     public void doTheWigWam(int MenuID) {
  96.         SubMenuViewModel vm = ViewModelProviders.of(f, new SubMenuViewModelFactory(f.getActivity().getApplication(), MenuID)).get(SubMenuViewModel.class);
  97.         vm.getSubMenus().observe(this, new Observer<String[]>() {
  98.             @Override
  99.             public void onChanged(String[] strings) {
  100.                 for (int i = 0; i < strings.length; i++)
  101.                     Log.d(TAG, "Received " + strings[i]);
  102.  
  103.                 mCallback.onStringReceived(strings);
  104.             }
  105.         });
  106.     }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement