Android 微调器选择定义了另一个微调器的选择

Android 微调器选择定义了另一个微调器的选择,android,android-spinner,Android,Android Spinner,我有一个关于旋转器的问题,在网上找不到任何关于如何操作的信息 我的应用程序中有一个微调器,可以选择西南、东南地区 我希望第二个微调器的可用选择取决于第一个微调器中的选择。i、 e.当用户选择西南时,第二个微调器上的选项为查尔斯湖、爱荷华州、亚瑟湖等。当用户选择东南时,第二个微调器上的选项为格雷特纳、新奥尔良、卢林等 我该怎么做呢 我们将不胜感激 谢谢大家! 实际上,您将捕获第一个微调器选择事件。在此基础上,您将更改第二个微调器可用列表的内容。您可能还必须调用invalidateView()才能使

我有一个关于旋转器的问题,在网上找不到任何关于如何操作的信息

我的应用程序中有一个微调器,可以选择西南、东南地区

我希望第二个微调器的可用选择取决于第一个微调器中的选择。i、 e.当用户选择西南时,第二个微调器上的选项为查尔斯湖、爱荷华州、亚瑟湖等。当用户选择东南时,第二个微调器上的选项为格雷特纳、新奥尔良、卢林等

我该怎么做呢

我们将不胜感激


谢谢大家!

实际上,您将捕获第一个微调器选择事件。在此基础上,您将更改第二个微调器可用列表的内容。您可能还必须调用invalidateView()才能使更改生效。所以实际上有三个部分

1) 在onClick处理程序中捕获所选内容

2) 修改第二个spinner的数据,并在过滤后将spinner2数据重置为调整后的数据

3) 如果需要,请使第二个微调器无效,并可能使containingView上的invalidateView无效,使其全部显示


因此,请将其分解为这三个步骤,如果您对其中任何一个有疑问,请告诉我们。

基本上,您将看到第一个微调器选择事件。在此基础上,您将更改第二个微调器可用列表的内容。您可能还必须调用invalidateView()才能使更改生效。所以实际上有三个部分

1) 在onClick处理程序中捕获所选内容

2) 修改第二个spinner的数据,并在过滤后将spinner2数据重置为调整后的数据

3) 如果需要,请使第二个微调器无效,并可能使containingView上的invalidateView无效,使其全部显示

因此,请将其分解为这三个步骤,如果您对其中任何一个步骤有疑问,请告诉我们。

请尝试以下代码

我希望它能对你有所帮助

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自动生成的方法存根
}
});
}
}
试试这段代码

我希望它能对你有所帮助

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();