My application is not initiating the onItemSelected method, when I change my spinner view. It should work fine, but it is not functioning.
class UnitConverter extends Fragment implements OnItemSelectedListener{
Spinner spinner, spinner2;
ArrayAdapter<CharSequence> adapter, kilogramAdapter, metreAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater,container,savedInstanceState);
View v = inflater.inflate(R.layout.activity_converter, container, false);
spinner = (Spinner) v.findViewById(R.id.SI_spinner);
spinner2 = (Spinner) v.findViewById(R.id.spinner1);
adapter = ArrayAdapter.createFromResource(getActivity(), R.array.si_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
metreAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.metre_array, android.R.layout.simple_spinner_item);
metreAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
kilogramAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.kilogram_array, android.R.layout.simple_spinner_item);
kilogramAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner2.setAdapter(metreAdapter);
return v;
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){
spinner2.setAdapter(kilogramAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}
You need to register the listener with your spinner like below code
if you are implementing the OnItemSelectedListener
like you are doing in the code provided by you. then register the listener like this
spinner.setOnItemSelectedListener(this);
or if you are creating a new class implementing the OnItemSelectedListener
interface.
then you can register that class with your spinner view like this
spinner.setOnItemSelectedListener(new MyCustomListener());
private class MyCustomListener implements OnItemSelectedListener
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){
// Write your logic what you want to do on selecting the item
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}