Android,2个旋转器

Android,2个旋转器,android,android-intent,android-spinner,Android,Android Intent,Android Spinner,我刚接触安卓系统编程,感觉自己就像是在砸砖墙一样 我正在尝试设置两个微调器,因此当在微调器1中选择项目时,它会在微调器2中显示一个新的项目列表,但是问题是微调器1有4个项目,每个项目我想在第二个微调器上显示不同的信息,如果这还不够,当第二个微调器中的项目被选中时,我想让它显示另一组信息 非常感谢您的帮助。让您的活动实现onItemSelectedListener,并将微调器绑定到它,如下所示: spinner1.setOnItemSelectedListener(this); spinner2.

我刚接触安卓系统编程,感觉自己就像是在砸砖墙一样

我正在尝试设置两个微调器,因此当在微调器1中选择项目时,它会在微调器2中显示一个新的项目列表,但是问题是微调器1有4个项目,每个项目我想在第二个微调器上显示不同的信息,如果这还不够,当第二个微调器中的项目被选中时,我想让它显示另一组信息


非常感谢您的帮助。

让您的活动实现onItemSelectedListener,并将微调器绑定到它,如下所示:

spinner1.setOnItemSelectedListener(this);
spinner2.setOnItemSelectedListener(this);
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   if( parent == spinner1 ) {
          if( pos == 0 ) {
             ArrayAdapter<String> newAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, newDataSet1);
             newAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
             spinner2.setAdapter(newAdapter);
          } else if( pos == 1 ) {
              //etc
          }
   }
}
然后,您需要使用onItemSelected方法来更改第二个微调器的数据集,类似这样:

spinner1.setOnItemSelectedListener(this);
spinner2.setOnItemSelectedListener(this);
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   if( parent == spinner1 ) {
          if( pos == 0 ) {
             ArrayAdapter<String> newAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, newDataSet1);
             newAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
             spinner2.setAdapter(newAdapter);
          } else if( pos == 1 ) {
              //etc
          }
   }
}
public void已选择(AdapterView父视图、视图视图、整数位置、长id){
如果(父项==喷丝头1){
如果(位置==0){
ArrayAdapter newAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器项目,newDataSet1);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头2.固定接头(新接头);
}否则如果(位置==1){
//等
}
}
}

您可以在外部if中添加第二个子句,检查父项是否等于spinner2,并用其他数据集替换第三个类似的spinner。祝你好运

使您的活动实现onItemSelectedListener,并将微调器绑定到它,如下所示:

spinner1.setOnItemSelectedListener(this);
spinner2.setOnItemSelectedListener(this);
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   if( parent == spinner1 ) {
          if( pos == 0 ) {
             ArrayAdapter<String> newAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, newDataSet1);
             newAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
             spinner2.setAdapter(newAdapter);
          } else if( pos == 1 ) {
              //etc
          }
   }
}
然后,您需要使用onItemSelected方法来更改第二个微调器的数据集,类似这样:

spinner1.setOnItemSelectedListener(this);
spinner2.setOnItemSelectedListener(this);
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   if( parent == spinner1 ) {
          if( pos == 0 ) {
             ArrayAdapter<String> newAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, newDataSet1);
             newAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
             spinner2.setAdapter(newAdapter);
          } else if( pos == 1 ) {
              //etc
          }
   }
}
public void已选择(AdapterView父视图、视图视图、整数位置、长id){
如果(父项==喷丝头1){
如果(位置==0){
ArrayAdapter newAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器项目,newDataSet1);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头2.固定接头(新接头);
}否则如果(位置==1){
//等
}
}
}

您可以在外部if中添加第二个子句,检查父项是否等于spinner2,并用其他数据集替换第三个类似的spinner。祝你好运

在我看来,一个更干净的解决方案是内联定义侦听器,或者将它们定义为
活动的内部类

例如:

layout.xml

<Spinner
    android:id="@+id/spinner_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Spinner
    android:id="@+id/spinner_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Spinner spinnerOne = (Spinner) findViewById(R.id.spinner_1);
        Spinner spinnerTwo = (Spinner) findViewById(R.id.spinner_2);
        spinnerOne.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                spinnerTwo.setAdapter(/*set new information in spinner 2 here*/);
            }
        });
    }
}

在我看来,一个更干净的解决方案是内联定义侦听器,或者将它们定义为
活动的内部类

例如:

layout.xml

<Spinner
    android:id="@+id/spinner_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Spinner
    android:id="@+id/spinner_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Spinner spinnerOne = (Spinner) findViewById(R.id.spinner_1);
        Spinner spinnerTwo = (Spinner) findViewById(R.id.spinner_2);
        spinnerOne.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                spinnerTwo.setAdapter(/*set new information in spinner 2 here*/);
            }
        });
    }
}