Android實現(xiàn)聯(lián)動下拉框 下拉列表spinner的實例代碼
主要實現(xiàn)辦法:動態(tài)加載各級下拉值的適配器
在本級下拉框,當(dāng)本級下拉框的選中值改變時,隨之修改下級的適配器的綁定值


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>
實現(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)選中項,此處為默認(rèn)選中第4個值
cityAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, city[3]);
citySpinner.setAdapter(cityAdapter);
citySpinner.setSelection(0,true); //默認(rèn)選中第0個
countyAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, county[3][0]);
countySpinner.setAdapter(countyAdapter);
countySpinner.setSelection(0, true);
//省級下拉框
provinceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
// 表示選項被改變的時候觸發(fā)此方法,主要實現(xiàn)辦法:動態(tài)改變地級適配器的綁定值
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3)
{
//position為當(dāng)前省級選中的值的序號
//將地級適配器的值改變?yōu)閏ity[position]中的值
cityAdapter = new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_spinner_item, city[position]);
// 設(shè)置二級下拉列表的選項內(nèi)容適配器
citySpinner.setAdapter(cityAdapter);
provincePosition = position; //記錄當(dāng)前省級序號,留給下面修改縣級適配器時用
}
@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實現(xiàn)的文件同步設(shè)計方案
隨著用戶對自身數(shù)據(jù)保護(hù)意識的加強(qiáng),讓用戶自己維護(hù)自己的數(shù)據(jù)也成了獨立開發(fā)產(chǎn)品時的一個賣點,若只針對少量的文件進(jìn)行同步,則實現(xiàn)起來比較簡單,當(dāng)針對一個多層級目錄同步時,情況就復(fù)雜多了,本文我分享下我的設(shè)計思路2023-10-10
在Android系統(tǒng)源碼中預(yù)置APK的方法
今天小編就為大家分享一篇關(guān)于在Android系統(tǒng)源碼中預(yù)置APK的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
Android碎片fragment實現(xiàn)靜態(tài)加載的實例代碼
這篇文章主要介紹了Android碎片fragment實現(xiàn)靜態(tài)加載的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
Android編程之簡單逐幀動畫Frame的實現(xiàn)方法
這篇文章主要介紹了Android編程之簡單逐幀動畫Frame的實現(xiàn)方法,結(jié)合實例較為詳細(xì)的分析了Android逐幀動畫的原理、步驟與具體實現(xiàn)技巧,需要的朋友可以參考下2015-12-12

