Android使用Spinner控件實現(xiàn)下拉列表的案例
(1)兩種方法提沖Spinner中的數(shù)據(jù)源:通過list集合,或者是通過xml文件進行配置
(2)布局代碼如下:
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="46dp"
android:text="所屬城市"
android:textSize="22sp" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="200sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="44dp"
android:layout_toRightOf="@+id/textView1" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_centerVertical="true"
android:text="所屬星球" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/spinner1"
android:layout_alignTop="@+id/textView2"
android:layout_marginLeft="21dp" />
</RelativeLayout>
(3)
package com.example.spinners;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
/**
* 通過繼承OnItemSelectedListener接口來實現(xiàn)選擇時的事件
* @author xuliugen
*
*/
public class MainActivity extends Activity implements OnItemSelectedListener {
private Spinner spinner1;
private Spinner spinner2;
// private SpinnerAdapter spinnerAdapter;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner1 = (Spinner) this.findViewById(R.id.spinner1);
spinner2 = (Spinner) this.findViewById(R.id.spinner2);
// 第一種手工輸入的list
adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, getDataSource());
spinner1.setAdapter(adapter);
//注冊監(jiān)聽器
spinner1.setOnItemSelectedListener(this);
// 第二種:通過加載xml文件配置的數(shù)據(jù)源
ArrayAdapter adapter2 = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
}
/*
* 通過第一種方法:手工輸入的list
*/
public List<String> getDataSource() {
List<String> list = new ArrayList<String>();
list.add("beijing");
list.add("beida");
list.add("shahai");
list.add("shangjing");
list.add("shanglian");
list.add("chengdu");
return list;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
String itemString = spinner1.getItemAtPosition(position).toString();
Toast.makeText(this, "你選中的是" + itemString, 1).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
(4)資源文件中的配置如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Spinners</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
(5)運行結(jié)果如下所示:

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Flutter使用AnimationController實現(xiàn)控制動畫
這篇文章主要想帶大家來嘗試一下Flutter如何使用AnimationController實現(xiàn)一個拖拽圖片,然后返回原點的動畫,感興趣的可以了解一下2023-05-05
Android實現(xiàn)背景可滑動登錄界面 (不壓縮背景彈出鍵盤)
這篇文章主要介紹了Android實現(xiàn)背景可滑動登錄界面 (不壓縮背景彈出鍵盤),需要的朋友可以參考下2017-04-04
Android_UI 仿QQ側(cè)滑菜單效果的實現(xiàn)
相信大家對QQ側(cè)滑菜單的效果已經(jīng)不陌生了吧,側(cè)滑進入個人頭像一側(cè),進行對頭像的更改,我的收藏,QQ錢包,我的文件等一系列的操作,下面小編給大家分享Android_UI 仿QQ側(cè)滑菜單效果的實現(xiàn),一起看看吧2017-04-04
解決Android SearchView不顯示搜索icon的問題
這篇文章主要介紹了解決Android SearchView不顯示搜索icon問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
Android開發(fā)實現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法
這篇文章主要介紹了Android開發(fā)實現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法,涉及Android圖片文件的讀取、保存及權(quán)限相關(guān)操作技巧,需要的朋友可以參考下2018-01-01

