So basically I have 2 Spinners with a set of values. When I change a Spinner value, the Recyclerview will refresh and update with a new set of data. I'm stuck here and any help is welcome, thanks in advance!
private String[] vocSpinner;
private String[] popSpinner;
private List<Standard> standardList = new ArrayList<>();
private RecyclerView recyclerView;
private StandardsAdapter sAdapter;
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getActivity().setTitle("Standard");
recyclerView = (RecyclerView) getActivity().findViewById(R.id.recyclerView);
sAdapter = new StandardsAdapter(standardList);
RecyclerView.LayoutManager mLayoutManager = new
LinearLayoutManager(getActivity().getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(sAdapter);
this.vocSpinner = new String[]{
"CDO/Diver/Gds/Fitness Spec", "Combat/Service"
};
this.popSpinner = new String[]{
"NSmen", "Regular/NSF", "Pre-enlistee"
};
Spinner v = (Spinner) getActivity().findViewById(R.id.spinner_Voc);
final Spinner p = (Spinner) getActivity().findViewById(R.id.spinner_PopGp);
ArrayAdapter<String> adapterV = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, vocSpinner);
v.setAdapter(adapterV);
ArrayAdapter<String> adapterP = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, popSpinner);
p.setAdapter(adapterP);
v.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
switch (position) {
case 0:
if (p.getSelectedItem().equals("NSmen")) {
addStandardToList("Gold", ">90pts");
addStandardToList("Silver", ">75pts");
// I need help here!!
sAdapter.notifyDataSetChanged();
} else if (p.getSelectedItem().equals("Regular/NSF")) {
addStandardToList("Gold", ">85pts");
sAdapter.notifyDataSetChanged();
} else if (p.getSelectedItem().equals("Pre-enlistee")) {
}
break;
case 1:
if (p.getSelectedItem().equals("NSmen")) {
} else if (p.getSelectedItem().equals("Regular/NSF")) {
} else if (p.getSelectedItem().equals("Pre-enlistee")) {
}
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_standard, container, false);
return view;
}
private void addStandardToList(String stdStan, String stdPts) {
Standard standardObj = new Standard (stdStan, stdPts);
standardList.add(standardObj);
sAdapter.notifyDataSetChanged();
}
}