Android實(shí)現(xiàn)聯(lián)動(dòng)下拉框 下拉列表spinner的實(shí)例代碼
主要實(shí)現(xiàn)辦法:動(dòng)態(tài)加載各級(jí)下拉值的適配器
在本級(jí)下拉框,當(dāng)本級(jí)下拉框的選中值改變時(shí),隨之修改下級(jí)的適配器的綁定值
XML布局:
<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="wrap_content"
android:orientation="horizontal"
android:padding="8dp" >
<Spinner
android:id="@+id/spin_province"
android:layout_width="80dp"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/spin_city"
android:layout_width="112dp"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/spin_county"
android:layout_width="100dp"
android:layout_height="wrap_content" />
</LinearLayout>
實(shí)現(xiàn)代碼:
package com.example.android.demo.spinner;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
/*
* 設(shè)置下拉框
*/
private void setSpinner()
{
provinceSpinner = (Spinner)findViewById(R.id.spin_province);
citySpinner = (Spinner)findViewById(R.id.spin_city);
countySpinner = (Spinner)findViewById(R.id.spin_county);
//綁定適配器和值
provinceAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, province);
provinceSpinner.setAdapter(provinceAdapter);
provinceSpinner.setSelection(3,true); //設(shè)置默認(rèn)選中項(xiàng),此處為默認(rèn)選中第4個(gè)值
cityAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, city[3]);
citySpinner.setAdapter(cityAdapter);
citySpinner.setSelection(0,true); //默認(rèn)選中第0個(gè)
countyAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, county[3][0]);
countySpinner.setAdapter(countyAdapter);
countySpinner.setSelection(0, true);
//省級(jí)下拉框
provinceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
// 表示選項(xiàng)被改變的時(shí)候觸發(fā)此方法,主要實(shí)現(xiàn)辦法:動(dòng)態(tài)改變地級(jí)適配器的綁定值
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3)
{
//position為當(dāng)前省級(jí)選中的值的序號(hào)
//將地級(jí)適配器的值改變?yōu)閏ity[position]中的值
cityAdapter = new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_spinner_item, city[position]);
// 設(shè)置二級(jí)下拉列表的選項(xiàng)內(nèi)容適配器
citySpinner.setAdapter(cityAdapter);
provincePosition = position; //記錄當(dāng)前省級(jí)序號(hào),留給下面修改縣級(jí)適配器時(shí)用
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
}
});
citySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3)
{
countyAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, county[provincePosition][position]);
countySpinner.setAdapter(countyAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
}
});
}
}
要獲取下拉框spinner中選中的值,用下面這方法就OK了
provinceSpinner.getSelectedItem().toString();
citySpinner.getSelectedItem().toString();
countySpinner.getSelectedItem().toString();
THE END
相關(guān)文章
android實(shí)現(xiàn)微信聯(lián)合登錄開(kāi)發(fā)示例
本篇文章主要介紹了android實(shí)現(xiàn)微信聯(lián)合登錄開(kāi)發(fā)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Android?Flutter實(shí)現(xiàn)有趣的頁(yè)面滾動(dòng)效果
Flutter提供了?CustomScrollView?來(lái)粘合多個(gè)滑動(dòng)組件,并且可以實(shí)現(xiàn)更有趣的滑動(dòng)效果,本文就來(lái)為大家詳細(xì)講講實(shí)現(xiàn)的方法,需要的可以參考一下2022-06-06Android RecyclerView下拉刷新和上拉加載更多
這篇文章主要為大家詳細(xì)介紹了Android RecyclerView下拉刷新和上拉加載更多,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Android RichText 讓Textview輕松的支持富文本(圖像ImageSpan、點(diǎn)擊效果等等類似QQ微信聊
AndroidRichText幫助實(shí)現(xiàn)像QQ,微信一樣的,一個(gè)TextView里既有文字又有表情又有圖片的效果,采用插件化的框架,代碼簡(jiǎn)單,可拓展性強(qiáng)2016-01-01Android中webView加載H5綁定cookie實(shí)例
這篇文章主要介紹了Android中webView加載H5綁定cookie實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android基于OpenCV實(shí)現(xiàn)圖像金字塔
圖像金字塔是圖像中多尺度表達(dá)的一種,最主要用于圖像的分割,是一種以多分辨率來(lái)解釋圖像的有效但概念簡(jiǎn)單的結(jié)構(gòu)。本文講解Android基于OpenCV實(shí)現(xiàn)圖像金字塔的步驟2021-06-06Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法
這篇文章主要介紹了Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法,結(jié)合實(shí)例形式分析了Android針對(duì)橫豎屏的判斷、計(jì)算、設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01