Android Spinner 組件的應(yīng)用實(shí)例
Android Spinner 組件
Spinner: 下拉組件
使用事項(xiàng):布局在XML 中實(shí)現(xiàn),具體的數(shù)據(jù)在JAVA 代碼中實(shí)現(xiàn);
所用知識(shí)點(diǎn):
數(shù)組適配器:ArrayAdapter 用于關(guān)系M 層和 C 層;
事件:OnItemSelectedListener;
案列:查看十二星座效果圖:
xml:代碼如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/showInfo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:gravity="center"
android:text=" " />
</LinearLayout>
</ScrollView>
</LinearLayout>
java代碼如下:
package com.example.spinnertest;
import java.util.ArrayList;
import android.app.Activity;
import android.content.res.Resources;
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;
import android.widget.TextView;
public class MainActivity extends Activity {
private Spinner spinner;
private TextView tx;
private ArrayList<String> list = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 獲取TextView 實(shí)體對(duì)象 , 用于顯示星座的詳細(xì)信息 */
tx = (TextView) findViewById(R.id.showInfo);
/* 下拉組件測(cè)試 Spinner 對(duì)象首先獲取 */
spinner = (Spinner) findViewById(R.id.spinner);
/* 準(zhǔn)備數(shù)據(jù)源 M , 用集合進(jìn)行保存 */
list = new ArrayList<String>();
list.add("Aries");
list.add("Taurus");
list.add("Gemini");
list.add("Cancer");
list.add("Leo");
list.add("Virgo");
list.add("Libra");
list.add("Scorpio");
list.add("Sagittarius");
list.add("Capricorn");
list.add("Aquarius");
list.add("Pisces");
/* 實(shí)現(xiàn)M 層 與C 層的關(guān)系 ,綁定數(shù)據(jù) */ /* 參數(shù)1:上下文對(duì)象; 參數(shù)2:系統(tǒng)資源布局方式 ; 參數(shù)3:數(shù)據(jù)對(duì)象 */
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list);
/* 對(duì)V 層和C 層進(jìn)行關(guān)系的綁定; */
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
/* 對(duì)所有的選擇項(xiàng)進(jìn)行監(jiān)控 *//* 參3:當(dāng)前選擇項(xiàng)的ID 參4:被選擇項(xiàng)在組中的位置,邏輯上與ID 相等,但代表的意義不一樣 */
public void onItemSelected(AdapterView<?> arg0, View arg1,
int id, long position) {
// Toast.makeText(MainActivity.this, "你選擇的是第:"+id+"值為:"+list.get(id), 1000).show();
/* 設(shè)置tx對(duì)象的值 */
String temp = getConstellation(id);
tx.setText("\t"+temp);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
/* 顯示星座的信息 */
protected String getConstellation(int id){
Resources rs = getResources();
String temp = "";
switch(id){
case 0:
temp = rs.getString(R.string.Aries);
break;
case 1:
temp = rs.getString(R.string.Taurus);
break;
case 2:
temp = rs.getString(R.string.Gemini);
break;
case 3:
temp = rs.getString(R.string.Cancer);
break;
case 4:
temp = rs.getString(R.string.Leo);
break;
case 5:
temp = rs.getString(R.string.Virgo);
break;
case 6:
temp = rs.getString(R.string.Libra);
break;
case 7:
temp = rs.getString(R.string.Scorpio);
break;
case 8:
temp = rs.getString(R.string.Sagittarius);
break;
case 9:
temp = rs.getString(R.string.Capricorn);
break;
case 10:
temp = rs.getString(R.string.Aquarius);
break;
case 11:
temp = rs.getString(R.string.Pisces);
break;
case 12:
temp = rs.getString(R.string.Aries);
break;
}
return temp;
}
}
以上就是Android Spinner 組件的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
詳解MVP模式在Android開發(fā)中的應(yīng)用
MVP是MVC衍生而來(lái)的,很早以前就由某軟公司提出,近年來(lái)在Android應(yīng)用開發(fā)中越來(lái)越多的被提及,越來(lái)越重要了。這篇文章主要介紹了詳解MVP模式在Android開發(fā)中的應(yīng)用,有興趣的可以了解一下。2016-11-11
Android AutoCompleteTextView連接數(shù)據(jù)庫(kù)自動(dòng)提示的方法(附demo源碼下載)
這篇文章主要介紹了Android AutoCompleteTextView連接數(shù)據(jù)庫(kù)自動(dòng)提示的方法,結(jié)合實(shí)例形式分析了AutoCompleteTextView操作數(shù)據(jù)庫(kù)的原理與具體技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-02-02
Android開發(fā)仿掃一掃實(shí)現(xiàn)拍攝框內(nèi)的照片功能
無(wú)論是微信還是支付寶掃一掃功能很常用,那么它基于代碼是如何實(shí)現(xiàn)的呢?今天小編給大家分享android開發(fā)之仿掃一掃實(shí)現(xiàn)拍攝框內(nèi)的照片功能,感興趣的朋友一起學(xué)習(xí)吧2016-09-09
Android 系統(tǒng)實(shí)現(xiàn)多種開機(jī)動(dòng)畫和logo切換功能
這篇文章主要介紹了android 系統(tǒng)實(shí)現(xiàn)多種開機(jī)動(dòng)畫和logo切換功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
Android Studio設(shè)置繪制布局時(shí)的視圖
這篇文章介紹了Android Studio設(shè)置繪制布局時(shí)視圖的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
Android打造屬于自己的新聞平臺(tái)(客戶端+服務(wù)器)
這篇文章主要為大家詳細(xì)介紹了Android打造屬于自己的新聞平臺(tái)的相關(guān)資料,Android實(shí)現(xiàn)新聞客戶端服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
Android簡(jiǎn)單實(shí)現(xiàn)一個(gè)顏色漸變的ProgressBar的方法
本篇文章主要介紹了Android簡(jiǎn)單實(shí)現(xiàn)一個(gè)顏色漸變的ProgressBar的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12

