有没有办法让微调器选项打开另一个微调器?
Posted
技术标签:
【中文标题】有没有办法让微调器选项打开另一个微调器?【英文标题】:Is there a way for a spinner option to open another spinner? 【发布时间】:2011-11-25 17:24:18 【问题描述】:我希望当有人单击 Spinner 中的一个选项时,它会打开另一个具有更多选项的微调器。此外,是否有一种方法可以让“其他”选项打开一个 EditText,如果 Spinner 中没有他们的选择,人们可以在其中输入他们的选择?
例子:
微调器 1 有以下选项:
iOS
安卓
如果他们选择 iOS,则会立即出现另一个微调器,其中选项是所有 iPhone 版本。 (即标题为“您拥有哪部 iPhone?”)
如果他们选择 android,它会做同样的事情,但使用的是 Android 设备。
如果他们的手机不在第二个微调器上,他们会输入手机的型号。
如果我的代码中已经有第一个微调器,我该怎么做?
P.S.,如果需要,我可以发布第一个微调器的代码,虽然它很标准。
【问题讨论】:
用剩下的选项启动一个对话框不是一个选项? 不清楚,但您可以根据第一个微调器的选择填充另一个微调器。 【参考方案1】:基本上以编程方式构建您的第二个微调器,具体取决于他们选择的选项。我会在每个第二个微调器中添加“其他”。如果他们选择“其他”,那么您可以显示文本框。
【讨论】:
【参考方案2】:我希望这对你有用。
试试这个代码...
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
);
【讨论】:
以上是关于有没有办法让微调器选项打开另一个微调器?的主要内容,如果未能解决你的问题,请参考以下文章
不可能让我的 DatePickerDialog 以编程方式使用微调器样式