Android 一个微调器选项是否可以打开另一个微调器?

Android 一个微调器选项是否可以打开另一个微调器?,android,eclipse,spinner,android-spinner,Android,Eclipse,Spinner,Android Spinner,我希望当有人单击微调器中的一个选项时,它会打开另一个具有更多选项的微调器。另外,是否有一种“其他”选项可以打开EditText的方法,如果微调器中没有他们的选项,则可以在其中输入他们的选择 例如: 微调器1具有以下选项: iOS Android 如果他们选择iOS,另一个微调器会立即出现,选项都是iPhone版本。(例如,标题为“你有哪部iPhone?”) 如果他们选择安卓系统,它也会做同样的事情,但是使用安卓设备 如果他们的手机不在第二个微调器上,他们会输入手机的型号 如果我的代码中已经有了第

我希望当有人单击微调器中的一个选项时,它会打开另一个具有更多选项的微调器。另外,是否有一种“其他”选项可以打开EditText的方法,如果微调器中没有他们的选项,则可以在其中输入他们的选择

例如:

微调器1具有以下选项:

iOS

Android

如果他们选择iOS,另一个微调器会立即出现,选项都是iPhone版本。(例如,标题为“你有哪部iPhone?”)

如果他们选择安卓系统,它也会做同样的事情,但是使用安卓设备

如果他们的手机不在第二个微调器上,他们会输入手机的型号

如果我的代码中已经有了第一个微调器,我该怎么做呢


另外,如果需要的话,我可以发布第一个微调器的代码,尽管它非常标准。

基本上是根据他们选择的选项以编程方式构建第二个微调器。我会在每一个微调器上加上“其他”。如果他们选择“其他”,则您可以显示文本框。

我希望这对您有用

请尝试此代码

public class MainActivity extends Activity {

Spinner sp1,sp2;
ArrayAdapter<String> adp1,adp2;
List<String> l1,l2;
int pos;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    l1=new ArrayList<String>();

    l1.add("A");
    l1.add("B");

    sp1= (Spinner) findViewById(R.id.spinner1);
    sp2= (Spinner) findViewById(R.id.spinner2);

    adp1=new ArrayAdapter<String> (this,android.R.layout.simple_dropdown_item_1line,l1);
    adp1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    sp1.setAdapter(adp1);

    sp1.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            pos=arg2;
            add();

        }

        private void add() {
            // TODO Auto-generated method stub
            Toast.makeText(getBaseContext(), ""+pos, Toast.LENGTH_SHORT).show();

            switch(pos)
            {
            case 0:
                l2= new ArrayList<String>();                    
                l2.add("A 1");
                l2.add("A 2");

                adp2=new ArrayAdapter<String>(MainActivity.this,
                        android.R.layout.simple_dropdown_item_1line,l2);
                adp2.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                sp2.setAdapter(adp2);

                select();

                break;
            case 1:
                l2= new ArrayList<String>();                    
                l2.add("B 1");
                l2.add("B 2");

                adp2=new ArrayAdapter<String>(MainActivity.this,
                        android.R.layout.simple_dropdown_item_1line,l2);
                adp2.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                sp2.setAdapter(adp2);

                select();

                break;
            }

        }

        private void select() {
            // TODO Auto-generated method stub

            sp2.setOnItemSelectedListener(new OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub
                    Toast.makeText(getBaseContext(), "Test "+arg2, Toast.LENGTH_SHORT).show();

                }

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

                }
            });

        }

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

        }
    });
    }

}
公共类MainActivity扩展活动{
Spinner sp1、sp2;
阵列适配器adp1、adp2;
列表l1、l2;
int pos;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
l1=新的ArrayList();
l1.添加(“A”);
l1.添加(“B”);
sp1=(微调器)findViewById(R.id.spinner1);
sp2=(喷丝器)findViewById(R.id.spinner2);
adp1=新的阵列适配器(这是android.R.layout.simple\u dropdown\u item\u 1line,l1);
adp1.setDropDownViewResource(android.R.layout.simple\u dropdown\u item\u 1line);
设置适配器(adp1);
setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
pos=arg2;
添加();
}
私有void add(){
//TODO自动生成的方法存根
Toast.makeText(getBaseContext(),“”+pos,Toast.LENGTH_SHORT).show();
开关(pos)
{
案例0:
l2=新的ArrayList();
l2.添加(“A 1”);
l2.添加(“A 2”);
adp2=新阵列适配器(main activity.this,
android.R.layout.simple\u下拉菜单\u项目\u 1行,l2);
adp2.setDropDownViewResource(android.R.layout.simple\u dropdown\u item\u 1line);
设置适配器(adp2);
选择();
打破
案例1:
l2=新的ArrayList();
l2.添加(“B 1”);
l2.添加(“B 2”);
adp2=新阵列适配器(main activity.this,
android.R.layout.simple\u下拉菜单\u项目\u 1行,l2);
adp2.setDropDownViewResource(android.R.layout.simple\u dropdown\u item\u 1line);
设置适配器(adp2);
选择();
打破
}
}
私有void select(){
//TODO自动生成的方法存根
setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
Toast.makeText(getBaseContext(),“Test”+arg2,Toast.LENGTH_SHORT).show();
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
}
}

启动带有剩余选项的对话框不是选项?不清楚,但您可以根据选择的第一个微调器填充另一个微调器。