2016年6月11日 星期六

ArrayAdapter 動態顯示選單


public class MainActivity extends Activity implements OnItemSelectedListener {

private Spinner mspin1, mspin2;
private Button mbtnOK;
private TextView mtxtR;

String mspin1_str[] = {"台中","宜蘭","花蓮"};

String mspin2_str1[] = {"太陽餅","三明治","牛軋糖"};  // 台中名產
String mspin2_str2[] = {"蜜餞","鴨賞","牛舌餅"};         // 宜蘭名產
String mspin2_str3[] = {"麻糬","小月餅","奶油酥條"};  // 花蓮名產

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mspin1 = (Spinner) findViewById(R.id.spin1);
mspin2 = (Spinner) findViewById(R.id.spin2);
mbtnOK = (Button) findViewById(R.id.btnOK);
mtxtR = (TextView) findViewById(R.id.txtR);

mspin1.setOnItemSelectedListener(this);
mbtnOK.setOnClickListener(mbtnOKOnClickListener);

// 將「地區」變數的陣列指派給 mspin1 下拉選單
ArrayAdapter tmp_spin1 = new ArrayAdapter(this, 
android.R.layout.simple_spinner_dropdown_item,  // 下拉式選單的樣式
mspin1_str);  // 將陣列 {"台中","宜蘭","花蓮"} 指派給 ArrayAdapter 型態的變數 tmp_spin1
mspin1.setAdapter(tmp_spin1);
}

private View.OnClickListener mbtnOKOnClickListener = new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mtxtR.setText(getString(R.string.stxtR) +
mspin1.getSelectedItem() + ", " +  // 取得第一個項目點選的文字
mspin2.getSelectedItem());            // 取得第二個項目點選的文字
}
};

@Override
public void onItemSelected(AdapterView parent, View view, int position, long id) {
// TODO Auto-generated method stub

// 將所屬地區的「名產」變數陣列指派給 mspin2 下拉選單
switch (position) {
case 0:
ArrayAdapter tmp_spin2_1 = new ArrayAdapter(this, 
android.R.layout.simple_spinner_dropdown_item,
mspin2_str1);  // 將陣列 {"太陽餅","三明治","牛軋糖"} 指派給 ArrayAdapter 型態的變數 tmp_spin2_1
mspin2.setAdapter(tmp_spin2_1);
break;
case 1:
ArrayAdapter tmp_spin2_2 = new ArrayAdapter(this, 
android.R.layout.simple_spinner_dropdown_item,
mspin2_str2);  // 將陣列 {"蜜餞","鴨賞","牛舌餅"} 指派給 ArrayAdapter 型態的變數 tmp_spin2_2
mspin2.setAdapter(tmp_spin2_2);
break;
case 2:
ArrayAdapter tmp_spin2_3 = new ArrayAdapter(this, 
android.R.layout.simple_spinner_dropdown_item,
mspin2_str3);  // 將陣列 {"麻糬","小月餅","奶油酥條"} 指派給 ArrayAdapter 型態的變數 tmp_spin2_3
mspin2.setAdapter(tmp_spin2_3);
break;
}
}

@Override
public void onNothingSelected(AdapterView parent) {
// TODO Auto-generated method stub

}

}






範例下載

沒有留言: