Trying to inject a spinner in my application. There are three items in the list, and for some incomprehensible reason, only the choice of 2.3 is perceived if I start from 1. This is my previous question on this topic - How can I sort the list in Android? . Here's what I got at the moment:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) { switch (position) { case 0: messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); break; case 1: DateSort_theme ds = new DateSort_theme(); try { messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); Collections.sort(messageArrayList, ds); } catch (Exception ignored) { } break; case 2: DateSort_sender ds2 = new DateSort_sender(); try { messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); Collections.sort(messageArrayList, ds2); } catch (Exception ignored) { } break; } everything seems to be the same for all items, but for some reason only 2.3 is chosen. And I want to make sure that the default is 1 point and then continue to look if 1,2,3 is selected then do something. I tried to insert another additional default in the switch block, but it also does not select by default and it is not at all obvious that it works. Probably I have a mistake somewhere, but I can’t understand where exactly.
UPDATE
mSwipeRefreshLayout.setRefreshing(true); if (response.isSuccessful()) { Integer count = Objects.requireNonNull(response.body()).getCount(); if (count > 0) { recyclerView.setVisibility(View.VISIBLE); spinner.setVisibility(View.VISIBLE); /* messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter);*/ spinner.setSelection(0); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) { switch (position) { case 0: messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); break; case 1: DateSort_theme ds = new DateSort_theme(); try { messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); Collections.sort(messageArrayList, ds); } catch (Exception ignored) { } break; case 2: DateSort_sender ds2 = new DateSort_sender(); try { messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); Collections.sort(messageArrayList, ds2); } catch (Exception ignored) { } break; default: messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); break; } } @Override public void onNothingSelected(AdapterView<?> adapterView) { spinner.setSelection(2); messageArrayList = (ArrayList<Message>) Objects.requireNonNull(response.body()).getMessages(); adapter = new ListAdapter(messageArrayList, getActivity(), type); recyclerView.setAdapter(adapter); mSwipeRefreshLayout.setRefreshing(false); } }); } else if (count == 0) { recyclerView.setVisibility(View.GONE); spinner.setVisibility(View.GONE); ivPicture = Objects.requireNonNull(getActivity()).findViewById(R.id.ivNoMess); ivPicture.setVisibility(View.VISIBLE); }