【问题标题】:how to change other spinner based on the spinner selected before?如何根据之前选择的微调器更改其他微调器?
【发布时间】:2018-05-14 00:40:13
【问题描述】:

我正在尝试根据我在第一个微调器中选择的内容更改我的第二个微调器,而不使用任何 json 或数据库。必须根据我们在第一个微调器中选择的内容来更改下面的微调器。我正在尝试使用下面的代码,但不起作用

这是java代码

    Spinner gedungSpn, lantaiSpn, ruangSpn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_kelas);
GedungSpinner();

        if (gedungSpn.getSelectedItemPosition() == 0){
            LantaiSpinnerRektorat();
        }else if(gedungSpn.getSelectedItemPosition() == 1){
            LantaiSpinnerGL();
        }
    }
 public void GedungSpinner(){

        gedungSpn = (Spinner) findViewById(R.id.gedung_spn);
        List<String> list = new ArrayList<String>();
        list.add("Rektorat");
        list.add("Griya Legita");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        gedungSpn.setAdapter(dataAdapter);
    }

    public void LantaiSpinnerRektorat(){

        lantaiSpn = (Spinner) findViewById(R.id.lantai_spn);
        List<String> list = new ArrayList<String>();
        list.add("Lantai 1");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        lantaiSpn.setAdapter(dataAdapter);
    }

    public void LantaiSpinnerGL(){

        lantaiSpn = (Spinner) findViewById(R.id.lantai_spn);
        List<String> list = new ArrayList<String>();
        list.add("Lantai 1");
        list.add("Lantai 2");
        list.add("Lantai 3");
        list.add("Lantai 4");
        list.add("Lantai 5");
        list.add("Lantai 6");
        list.add("Lantai 7");
        list.add("Lantai 8");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        lantaiSpn.setAdapter(dataAdapter);
    }

请帮助我。也许一些技巧会有所帮助。我也在尝试更改 if 语句上的适配器,但它仍然根本不起作用

【问题讨论】:

  • 你得到什么例外?还有一件事你没有改变任何辅助微调器的索引,因为两者在第一个索引中具有相同的值,你可能认为它不是变化,但它在现实中发生变化。
  • 我没有遇到任何异常。它只是不想成为 LantaiSpinnerGL();当我在第一个微调器中选择 Griya Legita 时
  • 展开第二个微调器,看看有多少值。也只需调试一次,看看它正在执行 ifelseIf
  • 我还看到你没有在你的第一个微调器中添加任何 selectedIndexChange 侦听器。这是强制性的,否则它将不起作用。
  • 如何添加 selectedIndexChange?

标签: java android android-studio spinner android-spinner


【解决方案1】:

替换

        if (gedungSpn.getSelectedItemPosition() == 0){
            LantaiSpinnerRektorat();
        }else if(gedungSpn.getSelectedItemPosition() == 1){
            LantaiSpinnerGL();
        }

gedungSpn.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view,
                    int position, long id) {
                if (position == 0){
                   LantaiSpinnerRektorat();
                 }else if(position == 1){
                   LantaiSpinnerGL();
                 }
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                // TODO Auto-generated method stub

            }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多