我创建了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
}
});
答案 0 :(得分:0)
如果我理解你想要正确执行的操作,例如,如果从spinner1的下拉列表中选择数字4,则需要将spinner2设置为其中的第4个位置:
尝试这样的事情,比如你有mySpinner1
和mySpinner2
,让你的班级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。我没有时间检查它,所以如果有错误请告诉我。