我有一個關於微調器的問題,在網上找不到任何關於如何去做的問題。微調器選擇定義了另一個微調器的選擇
我在我的應用程序中有一個微調器,區域選擇即西南,東南。
我希望微調控制器選擇第二個微調控制器的可用選項,以取決於第一個微調控制器的選擇。即當用戶選擇西南時,第二個微調器上的選擇將是查爾斯湖,愛荷華州,亞瑟湖等。並且當用戶選擇東南時,第二微調器的選擇將是格雷特納,新奧爾良,盧林等。
我該如何去做呢?
示例將不勝感激!
謝謝!
我有一個關於微調器的問題,在網上找不到任何關於如何去做的問題。微調器選擇定義了另一個微調器的選擇
我在我的應用程序中有一個微調器,區域選擇即西南,東南。
我希望微調控制器選擇第二個微調控制器的可用選項,以取決於第一個微調控制器的選擇。即當用戶選擇西南時,第二個微調器上的選擇將是查爾斯湖,愛荷華州,亞瑟湖等。並且當用戶選擇東南時,第二微調器的選擇將是格雷特納,新奧爾良,盧林等。
我該如何去做呢?
示例將不勝感激!
謝謝!
試試這個代碼..
我希望它會幫助你...
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
}
});
}
}
基本上你會接受第一次選手賽事。在此之後,您可以更改第二個微調控制器列表的內容。您可能還必須調用invalidateView()以使更改生效。所以實際上有三部分:1)在onClick處理程序中捕獲選擇。
2)修改第二個微調器的數據,並在過濾後將spinner2數據重置爲調整後的數據。
3)如果需要,使第二個微調失效,並可能在containsView上使invalidateView失效,所有事情都顯示出來。
所以把它分解到這三個步驟,讓我們知道你是否有任何疑問。
這就是它!謝謝!我只需要進行一些更改以匹配我的數據,添加另一個微調器,然後打開一個新的活動! – Madonk 2012-08-03 18:51:42