Tengo un fragmento de configuración con 2 ruletas en él. No puedo ejecutar el código escrito en el método onItemSelected. No hay errores ni excepciones.
Busqué muchas preguntas similares pero ninguna de las soluciones funcionó para mí. No tengo idea de qué probar a continuación.
public class SettingsFragment extends Fragment implements AdapterView.OnItemSelectedListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //Getting the instance of Spinner and applying OnItemSelectedListener on it View view = inflater.inflate(R.layout.fragment_settings, container, false); Spinner spinnerBetrag = (Spinner) view.findViewById(R.id.spinnerBetrag); Spinner spinnerDetails = (Spinner) view.findViewById(R.id.spinnerDetails); spinnerBetrag.setOnItemSelectedListener(this); spinnerDetails.setOnItemSelectedListener(this); // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_settings, container, false); } @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { //>>Problem: Code within this method is never beeing executed<< } @Override public void onNothingSelected(AdapterView<?> parent) { } }Cambie su declaración de devolución en onCreateView a
return view;Su declaración de devolución actual está inflando una vista completamente nueva
Cambie su método onCreateView() para devolver la view
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //Getting the instance of Spinner and applying OnItemSelectedListener on it View view = inflater.inflate(R.layout.fragment_settings, container, false); Spinner spinnerBetrag = (Spinner) view.findViewById(R.id.spinnerBetrag); Spinner spinnerDetails = (Spinner) view.findViewById(R.id.spinnerDetails); spinnerBetrag.setOnItemSelectedListener(this); spinnerDetails.setOnItemSelectedListener(this); return view; // add this instead } También para su onItemSelected()
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Spinner spinner = (Spinner) parent; if(spinner.getId() == R.id.spinnerBetrag) { Log.d("Spinner 1","selected"); } else if(spinner.getId() == R.id.spinnerDetails) { Log.d("Spinner 2","selected"); } }