【问题标题】:Android onItemSelected Spinner not activatingAndroid onItemSelected Spinner 未激活
【发布时间】:2014-05-01 03:17:56
【问题描述】:

当我更改微调器视图时,我的应用程序没有启动 onItemSelected 方法。 它应该可以正常工作,但无法正常工作。

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

    }
}

【问题讨论】:

    标签: java android android-fragments android-spinner onitemselectedlistener


    【解决方案1】:

    您需要像下面的代码一样使用您的微调器注册侦听器

    如果您正在实现OnItemSelectedListener,就像您在您提供的代码中所做的那样。然后像这样注册监听器

    spinner.setOnItemSelectedListener(this);
    

    或者,如果您正在创建一个实现 OnItemSelectedListener 接口的新类。

    然后您可以像这样使用微调器视图注册该类

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

    【讨论】:

      【解决方案2】:

      您需要设置Spinner选中的项目Listener

      spinner.setOnItemSelectedListener(this);
      

      【讨论】:

        【解决方案3】:

        当你要使用ListviewSpinner 时,你想触发选择使用下面的代码

        spinner.setOnItemSelectedListener(this);
        

        【讨论】:

          猜你喜欢
          • 2011-06-22
          • 1970-01-01
          • 2012-03-04
          • 1970-01-01
          • 1970-01-01
          • 2013-11-13
          • 2019-11-17
          • 1970-01-01
          • 2021-10-16
          相关资源
          最近更新 更多