当前位置: 代码迷 >> java >> android中微调器的onItemSelected属性
  详细解决方案

android中微调器的onItemSelected属性

热度:33   发布时间:2023-07-31 11:39:32.0
Spinner spin1 = (Spinner) findViewById(R.id.spinner1);
spin1.setOnItemSelectedListener(this);
spin2 = (Spinner) findViewById(R.id.spinner2);
spin2.setOnItemSelectedListener(this);
ArrayAdapter<String> choice1 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, data1);
    choice1
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    choice2 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, data2);
    choice2
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

在此代码中,我将创建两个下拉菜单,现在我的要求是,当我从第一个组合中选择项目时,必须根据第一个组合中的所选项目更改第二个组合中的数据。

现在在onItemSelected属性中如何为第一个下拉菜单专门编码?

当两个微调器之一的选择更改时,您的课程( this )是引发事件的侦听器。

因此,该类必须实现捕获那些事件的接口方法。 在此方法中,你(1) 确定微调触发事件(=发生了变化),如果是微调1,(2)从离心器1,并得到实际值(3)使用该值来设置微调2.本可能会导致另一个事件,必须将其忽略。

编辑

AdapterView.OnItemSelectedListener的接口方法之一是

public abstract void  onItemSelected  (AdapterView<?> parent, View view, int position, long id);

该适配器视图( parent被传递)正是对象触发事件,所以无论是parent == spin1parent == spin2是真实的(除非你不听更多的widget)。

BTW: spin1spin2需类成员,因为onItemSelect方法需要访问它们。

public void onItemSelected(AdapterView parent, View v,int position, long id) {
 // you decide here based on parent

if (parent==spin1) {
// do something with spin1
}
else if (parent==spin2) {
// do something with spin2
}
}
  相关解决方案