android级联下拉菜单
16lz
2021-01-23
这里我使用3层级联菜单
这里就给示例把,不做过多的解释,代码中基本的注释
activity_main.xml代码
MainActivity.java代码
package com.example.spinner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends Activity {//设置三级菜单private Spinner spinner_1;//1private Spinner spinner_2;//2private Spinner spinner_3;//3private ArrayAdapter adapter1,adapter2,adapter3;//对应的适配器private int provinceNum = 0;//下拉单数据的初始化private String province[] = {"江西省","上海市","江苏"};private String city[][] = {{"南昌","赣州"},{"上海1","上海2"},{"江苏","南京"}};private String area[][][] = {{{"南昌市","红谷滩","新建区"},{"章贡区","赣县"}},{{"上海11","上海111"},{"上海22"}},{{"江苏11","江苏22"},{"南京11","南京22"}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);spinner_1 = (Spinner)findViewById(R.id.spinner_1);spinner_2 = (Spinner)findViewById(R.id.spinner_2);spinner_3 = (Spinner)findViewById(R.id.spinner_3);//初始化,这里使用ArrayAdapteradapter1 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, province);adapter2 = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, city[0]);adapter3 = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, area[0][0]);//设置选择事件spinner_1.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {// TODO Auto-generated method stubadapter2 = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, city[position]);spinner_2.setAdapter(adapter2);//保存1级菜单position,为3级菜单显示的准备provinceNum = position;}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}});//2级菜单的选择事件spinner_2.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {// TODO Auto-generated method stubadapter3 = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_dropdown_item_1line,area[provinceNum][position]);spinner_3.setAdapter(adapter3);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}});spinner_1.setAdapter(adapter1);spinner_2.setAdapter(adapter2);spinner_3.setAdapter(adapter3);}}
结果图:
更多相关文章
- Android创建Menu菜单实例
- 【特效】3D旋转环形菜单
- 设置toolbar中弹出的menu菜单在toolbar的底部(下面)显示
- Android 使用BRVAH 实现二级菜单。类似QQ分组
- [置顶] Android入门基础(13) menu菜单汇总
- android RadioGroup与TabHost组合使用达到菜单效果
- Android --右上角弹出菜单
- 【Android】菜单功能的实现:使用XML
- 阅读《Android 从入门到精通》(28)——使用 XML 的选项菜单