Android:根据另一个Spinner的选择填充Spinner

4

spinner没有根据另一个spinner的选择进行填充,我已经花了几个小时了,仍然无法解决问题,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) {

        }
    });
2个回答

3
您可以使用已选项的值进行尝试,使用onItemSelectedListener
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) {

        }
    });

希望这能帮到您。

1

使用 onItemClickListener 代替 setOnItemSelectedListener


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接