Android更改Spinner的值

时间:2014-06-11 15:27:50

标签: android spinner

我创建了2个Spinner和我用一组数字填充它们。我想要的是用户在第一个上选择他们想要的数字,然后我将它保存到一个变量,用于填充第二个下拉列表,其值以该数字开头。我怎样才能做到这一点? 如何更改第二个微调器中的文本以从选择的数字开始。

我有这个,我将Spinner的项目存储在变量x上,我希望第二个Spinner以该变量开头。

mySpinner
                .setAdapter(new ArrayAdapter<String>(NewGuiaActivity.this,
                        android.R.layout.simple_spinner_dropdown_item,
                        establist));

        // Spinner on item click listener
        mySpinner
                .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

                    @Override
                    public void onItemSelected(AdapterView<?> arg0,
                            View arg1, int position, long arg3) {
                        // TODO Auto-generated method stub
                        // Locate the textviews in activity_main.xml


                        x = estab.get(position).getID();

                        Toast.makeText(getApplicationContext(), x,
                                   Toast.LENGTH_LONG).show();

                    }

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

1 个答案:

答案 0 :(得分:0)

如果我理解你想要正确执行的操作,例如,如果从spinner1的下拉列表中选择数字4,则需要将spinner2设置为其中的第4个位置:

尝试这样的事情,比如你有mySpinner1mySpinner2,让你的班级implement OnItemSelectedListener给它一个类变量private int spinner2Pos = 0;

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) {
    Spinner spinner = (Spinner) parent;
    if(spinner.getId() == case R.id.spinner_1_id){
        spinner2Pos = 
                (spinner.getItemAtPosition(position) < mySpinner2.getAdapter().getCount())?
                spinner.getItemAtPosition(position): 0;
        mySpinner2.setSelection(spinner2Pos);
    }
}

这应该将mySpinner2设置为您使用mySpinner1选择的项目,mySpinner1存储为类变量spinner2Pos。我没有时间检查它,所以如果有错误请告诉我。