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)的文件同步設(shè)計(jì)方案
隨著用戶(hù)對(duì)自身數(shù)據(jù)保護(hù)意識(shí)的加強(qiáng),讓用戶(hù)自己維護(hù)自己的數(shù)據(jù)也成了獨(dú)立開(kāi)發(fā)產(chǎn)品時(shí)的一個(gè)賣(mài)點(diǎn),若只針對(duì)少量的文件進(jìn)行同步,則實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,當(dāng)針對(duì)一個(gè)多層級(jí)目錄同步時(shí),情況就復(fù)雜多了,本文我分享下我的設(shè)計(jì)思路2023-10-10
在Android系統(tǒng)源碼中預(yù)置APK的方法
今天小編就為大家分享一篇關(guān)于在Android系統(tǒng)源碼中預(yù)置APK的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Android碎片fragment實(shí)現(xiàn)靜態(tài)加載的實(shí)例代碼
這篇文章主要介紹了Android碎片fragment實(shí)現(xiàn)靜態(tài)加載的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Android?藍(lán)牙BLE開(kāi)發(fā)完全指南
BLE藍(lán)牙的興起主要因?yàn)榻陙?lái)可穿戴設(shè)備的流行,由于傳統(tǒng)藍(lán)牙功耗高不能滿(mǎn)足可穿戴設(shè)備對(duì)于續(xù)航的要求,所以大部分可穿戴設(shè)備采用藍(lán)牙4.0,即BLE藍(lán)牙技術(shù),這篇文章主要給大家介紹了關(guān)于Android?藍(lán)牙BLE開(kāi)發(fā)的相關(guān)資料,需要的朋友可以參考下2021-11-11
Android編程之簡(jiǎn)單逐幀動(dòng)畫(huà)Frame的實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程之簡(jiǎn)單逐幀動(dòng)畫(huà)Frame的實(shí)現(xiàn)方法,結(jié)合實(shí)例較為詳細(xì)的分析了Android逐幀動(dòng)畫(huà)的原理、步驟與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12

