【问题标题】:android :populating spinner based on another spinner selectionandroid:根据另一个微调器选择填充微调器
【发布时间】:2017-03-06 11:09:42
【问题描述】:

spinner 没有基于另一个 spinner selection 填充,我已经在这个问题上做了几个小时,仍然无法解决问题,LOGCAT 中没有错误。提前致谢。

这是我的代码

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, SPINNERCOUNTRY);

    spinnerCountry = (MaterialBetterSpinner) findViewById(R.id.spinnerState);

    spinnerCountry.setAdapter(adapter);

    spinnerCity = (Spinner) findViewById(R.id.spinnerCity);


    spinnerCountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) {
            adapterView.getItemAtPosition(pos);
            if (pos == 0) {
                ArrayAdapter<CharSequence> adapter =  ArrayAdapter
                        .createFromResource(SpinnerStateCitySelectorActivity.this, R.array.city_Tamil_Nadu,
                                android.R.layout.simple_spinner_dropdown_item);
                spinnerCity.setAdapter(adapter);
            } else if (pos == 1) {
                ArrayAdapter<CharSequence> adapter = ArrayAdapter
                        .createFromResource(SpinnerStateCitySelectorActivity.this, R.array.city_Kerela,
                                android.R.layout.simple_spinner_dropdown_item);
                spinnerCity.setAdapter(adapter);
            } else if (pos == 2) {
                ArrayAdapter<CharSequence> adapter = ArrayAdapter
                        .createFromResource(SpinnerStateCitySelectorActivity.this, R.array.city_Karnataka,
                                android.R.layout.simple_spinner_dropdown_item);
                spinnerCity.setAdapter(adapter);
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

【问题讨论】:

    标签: android android-spinner


    【解决方案1】:

    您可以尝试使用所选项目的值,使用onItemSelectedListner

    yourMainSpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                String spinnerValue = yourMainSpin.getSelectedItem().toString();
                if (spinnerValue.equals("requierdString")) { 
                    subSpinner.setAdapter(yourAdapter);
                }else if (spinnerValue.equals("requierdString")){
                    subSpinner.setAdapter(yourAdapter);
                    }
    }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
    
            }
        });
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      用户 onItemClickListener 而不是 setOnItemSelectedListener

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-09
        • 1970-01-01
        相关资源
        最近更新 更多