質問

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) {

    }
}

他のヒント

You need to set the Spinner Item selected Listener

spinner.setOnItemSelectedListener(this);

When you going to use Listview or Spinner,you want to fire the selection use below code

spinner.setOnItemSelectedListener(this);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top