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