在項目中,為了提高用戶的體驗效果,我們會用到級聯操作,在android中關於下拉框的級聯操作,我們可以使用Spinner。
關於Spinner,來自官方文檔是這樣介紹的:
A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the
Adapter
associated with this view。
簡而言之就是
Spinner
is a widget similar to a drop-down list for selecting items.
這次項目中的需求是這樣的,用戶選擇一個城市,二級下拉框自動獲取該城市下的所有區/縣,下面分布講解。
- 對於android應用程序而言,布局時是不可缺少的,很重要,就在第一點來講,采用兩個LinearLayout布局,第一個LinearLayout采用垂直方向總體布局,第二個LinearLayout采用水平方向對說明信息進行子節點布局
View Code
- 這里主要在Activity中對布局文件進行操作。
- 對一些信息的聲明:
//市區/子菜單項信息 private String[][] areaData = CityCountry.areaData; private ArrayAdapter<CharSequence> adapterArea = null; //spinner城市 private Spinner mCity = null; //spinner縣區 private Spinner mCountry = null;
- 獲得Spinner對象:
// spinner下拉列表框二級菜單級聯 mCity = (Spinner) super.findViewById(R.id.city); mCountry = (Spinner) super.findViewById(R.id.area);
- 注冊Spinner setOnItemSelectedListener監聽事件:
mCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { // 表示選項改變的時候觸發 MppspPhoneAlarmAct.this.adapterArea = new ArrayAdapter<CharSequence>(MppspPhoneAlarmAct.this, // 定義所有的列表項 android.R.layout.simple_spinner_item, MppspPhoneAlarmAct.this.areaData[position]); // 設置二級下拉列表的選項內容 MppspPhoneAlarmAct.this.mCountry.setAdapter(MppspPhoneAlarmAct.this.adapterArea); } @Override public void onNothingSelected(AdapterView<?> arg0) { } });
- 對一些信息的聲明:
- 部分效果圖如下: