国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android使用Spinner實(shí)現(xiàn)城市級(jí)聯(lián)下拉框

2019-12-12 01:22:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近寫(xiě)一個(gè)使用Spinner實(shí)現(xiàn)城市級(jí)聯(lián)下拉框的Dome,現(xiàn)在總結(jié)一下,第一次寫(xiě)博客,互相學(xué)習(xí)。

activity_main.xml里面有三個(gè)Spinner

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:background="@color/white"   android:orientation="horizontal"   tools:context=".MainActivity">    <Spinner     android:id="@+id/spinner1"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:layout_weight="1" />    <Spinner     android:id="@+id/spinner2"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:layout_weight="1"     android:visibility="invisible" />    <Spinner     android:id="@+id/spinner3"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:layout_weight="1"     android:visibility="invisible" />  </LinearLayout> 

Spinner的每一個(gè)item布局,里面只有一個(gè)TextView

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:background="@color/white"   android:gravity="center"   android:orientation="horizontal"   android:padding="5dp">    <TextView     android:id="@+id/txt_name"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:text="名稱(chēng)"     android:textSize="16dp" /> </LinearLayout> 

下面是SpinnerAdapter,一般會(huì)用到Adapter的有如下幾個(gè)控件

(1)列表視圖控件-ListView
(2)縮略圖瀏覽器控件-Gallery
(3)網(wǎng)格控件-GridView
(4)下拉列表控件-Spinner
(5)自動(dòng)提示文本框-AutoCompleteTextView
(6)支持展開(kāi)/收縮功能的列表控件-ExpandableListView
適配器的作用是用來(lái)處理數(shù)據(jù)并將數(shù)據(jù)綁定到AdapterView上,是AdapterView視圖與與數(shù)據(jù)之間的一個(gè)橋梁。

/**  * @author: xiaolijuan  * @description: Spinner適配器  * @projectName: SpinnerProject  * @date: 2015-10-18  * @time: 00:19  */ public class SpinnerAdapter extends BaseAdapter {   private Context context;   private String[] array;   private int layoutId;    /**    * 構(gòu)造方法    * @param context 上下文對(duì)象    * @param array 數(shù)組    * @param layoutId 布局Id    */   public SpinnerAdapter(Context context, String[] array, int layoutId) {     this.context = context;     this.array = array;     this.layoutId = layoutId;   }    /**    * 獲取Item總數(shù)    * @return    */   @Override   public int getCount() {     return array.length;   }    /**    * 獲取一個(gè)Item對(duì)象    * @param position    * @return    */   @Override   public Object getItem(int position) {     return array[position];   }    /**    * 獲取指定item的ID    * @param position    * @return    */   @Override   public long getItemId(int position) {     return position;   }    /**    * 繪制的內(nèi)容均在此實(shí)現(xiàn)    * @param position position就是位置從0開(kāi)始    * @param convertView convertView是Spinner中每一項(xiàng)要顯示的view    * @param parent parent就是父窗體了,也就是Spinner    * @return    */   @Override   public View getView(int position, View convertView, ViewGroup parent) {     View item = convertView != null ? convertView : View.inflate(context, layoutId, null);     TextView txt_name = (TextView) item.findViewById(R.id.txt_name);     txt_name.setText(array[position]);     return item;   } } 

java 代碼:注釋寫(xiě)的很清楚

/**  * 使用Spinner實(shí)現(xiàn)城市級(jí)聯(lián)下拉框  * Spinner最簡(jiǎn)單使用方式步驟如下:  * 第一步:在布局文件中添加Spinner控件。  * 第二步:在Acitvity中通過(guò)id找到它。  * 第三步:給Spinner綁定一個(gè)適配器。  * 第四步:綁定監(jiān)聽(tīng)器就可以用了。  */ public class MainActivity extends Activity {   private Spinner spinner1, spinner2, spinner3;    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);      spinner1 = (Spinner) findViewById(R.id.spinner1);     spinner2 = (Spinner) findViewById(R.id.spinner2);     spinner3 = (Spinner) findViewById(R.id.spinner3);      //加載省份列表     loadProvince();     //設(shè)置spinner1的監(jiān)聽(tīng)事件     spinner1.setOnItemSelectedListener(new Spinner1ClickListener());     //加載城市列表     loadCity();     //設(shè)置spinner2的監(jiān)聽(tīng)事件     spinner2.setOnItemSelectedListener(new Spinner2ClickListener());     //加載區(qū)域列表     loadGZArea();     //設(shè)置spinner3的監(jiān)聽(tīng)事件     spinner3.setOnItemSelectedListener(new Spinner3ClickListener());   }    /**    * 加載省份列表    */   public void loadProvince() {     String[] array1 = new String[]{"請(qǐng)選擇", "廣東省"};     SpinnerAdapter adapterOne = new SpinnerAdapter(this, array1, R.layout.activity_item);     spinner1.setAdapter(adapterOne);   }    /**    * 加載城市列表    */   public void loadCity() {     String[] array2 = new String[]{"請(qǐng)選擇", "廣州市", "深圳市"};     SpinnerAdapter modelTwo = new SpinnerAdapter(this, array2, R.layout.activity_item);     spinner2.setAdapter(modelTwo);   }    /**    * 加載廣州區(qū)域列表    */   public void loadGZArea() {     String[] array3 = new String[]{"請(qǐng)選擇", "天河區(qū)", "越秀區(qū)", "荔灣區(qū)", "海珠區(qū)", "蘿崗區(qū)", "白云區(qū)", "黃埔區(qū)", "花都區(qū)"};     SpinnerAdapter modelThree = new SpinnerAdapter(this, array3, R.layout.activity_item);     spinner3.setAdapter(modelThree);   }    /**    * 加載深圳區(qū)域列表    */   public void loadSZArea() {     String[] array3 = new String[]{"請(qǐng)選擇", "龍崗區(qū)", "南山區(qū)", "福田區(qū)", "羅湖區(qū)", "鹽田區(qū)", "寶安區(qū)"};     SpinnerAdapter modelThree = new SpinnerAdapter(this, array3, R.layout.activity_item);     spinner3.setAdapter(modelThree);   }    /**    * Spinner1點(diǎn)擊事件    */   public class Spinner1ClickListener implements AdapterView.OnItemSelectedListener {      @Override     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {       String str = (String) adapterView.getItemAtPosition(i);       //判斷是否選擇城市,如果沒(méi)有選擇那么就隱藏Spinner2,Spinner3兩個(gè)下拉框,否則顯示Spinner2下拉框,繼續(xù)隱藏Spinner3       if (str.equals("請(qǐng)選擇")) {         spinner2.setVisibility(View.INVISIBLE);         spinner3.setVisibility(View.INVISIBLE);       } else {         spinner2.setVisibility(View.VISIBLE);          //將第二個(gè)下拉框的選項(xiàng)重新設(shè)置為選中“請(qǐng)選擇”這個(gè)選項(xiàng)。         spinner2.setSelection(0);       }        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();     }      @Override     public void onNothingSelected(AdapterView<?> adapterView) {      }   }    /**    * Spinner2點(diǎn)擊事件    */   public class Spinner2ClickListener implements AdapterView.OnItemSelectedListener {      @Override     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {       String str = (String) adapterView.getItemAtPosition(i);       if (str.equals("請(qǐng)選擇")) {         spinner3.setVisibility(View.INVISIBLE);       } else {         //顯示第三個(gè)Spinner3         spinner3.setVisibility(View.VISIBLE);          if (str.equals("深圳市")) {           //重新加載深圳區(qū)域列表           loadSZArea();         } else if (str.equals("廣州市")) {           //重新加載廣州區(qū)域列表           loadGZArea();         }       }       Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();     }      @Override     public void onNothingSelected(AdapterView<?> adapterView) {      }   }    /**    * Spinner3點(diǎn)擊事件    */   public class Spinner3ClickListener implements AdapterView.OnItemSelectedListener {      @Override     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {       String str = (String) adapterView.getItemAtPosition(i);       Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();     }      @Override     public void onNothingSelected(AdapterView<?> adapterView) {      }   } } 

下面是布局的效果圖

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中西区| 广宁县| 巩义市| 汉沽区| 呼伦贝尔市| 东光县| 扎兰屯市| 富顺县| 奉节县| 壶关县| 无极县| 栖霞市| 双江| 布尔津县| 社旗县| 遂平县| 陕西省| 宁陕县| 六安市| 安徽省| 和硕县| 涪陵区| 泸定县| 阜阳市| 华亭县| 南京市| 青龙| 遂川县| 思茅市| 姜堰市| 佛学| 泾源县| 隆尧县| 土默特右旗| 多伦县| 桓台县| 大悟县| 抚州市| 安平县| 淮南市| 南部县|