Android UI組件Spinner下拉列表詳解
Spinner下拉列表的實現(xiàn)代碼,分享給大家
該布局對應的關系圖:

常用屬性:android:entries(指定spinner要顯示的字符串資源。必須是在strings資源文件中定義的字符串資源)android:spinnerMode(spinner的模式,枚舉值有兩個值dialog彈窗顯示和dropdown下拉顯示)android:dropDownWidth(下拉框的寬度,單位通常是dp)android:prompt(當spinnerMode的值是dialog時,彈出的對話框式的下列列表的提示。如果
spinnerMode的值是dropdown時沒有效果。注意:此處的值不能直接使用直接字符串,
必須使用引用(字符串資源))
1.通過entries設置數(shù)據(jù)項,在values文件夾下的strings中添加數(shù)據(jù)的值

在strings.xml中添加一組array數(shù)據(jù)項,然后通過在entries中設置就可以設置對應的值

<Spinner
android:layout_width="match_parent"
android:entries="@array/data"http://資源文件設置數(shù)據(jù)
android:layout_height="wrap_content">
</Spinner>
2.設置android:spinnerMode:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:entries="@array/data"
android:spinnerMode="dialog"
android:layout_height="wrap_content">
</Spinner>
值為dialog的顯示為彈框顯示

值如果為dropdown的顯示如下:

android:dropDownWidth設置下拉寬度
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:entries="@array/data"
android:spinnerMode="dropdown"
android:dropDownWidth="70dp"
android:layout_height="wrap_content">
</Spinner>
效果如下圖:

數(shù)據(jù)源的獲取方式:通過ArrayAdapter適配器設置數(shù)據(jù)數(shù)據(jù)>
什么是適配器:將控件在加載數(shù)據(jù)過程中的同樣的部分 抽取為代碼,每次加載的時候都調(diào)用這部分代碼,生成
要返回的內(nèi)容,類似于模具
關于ArrayAdapter簡單介紹下:
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,data);
關于ArrayAdapter構造方法的說明:
1、ArrayAdapter(context, resource, objects)
參數(shù)一:上下文對象
參數(shù)二:布局文件的id,注意該布局文件有且只能有一個TextView標簽
參數(shù)三:原始數(shù)據(jù),List集合或數(shù)組都可以。
2、ArrayAdapter(context, resource, textViewResourceId, objects)
參數(shù)一:上下文對象
參數(shù)二:布局文件的id,注意該布局文件中至少有一個TextView標簽
參數(shù)三:參數(shù)二布局文件中要顯示數(shù)據(jù)的TextView的id
參數(shù)四:原始數(shù)據(jù),List集合或數(shù)組都可以。
public class MainActivity extends AppCompatActivity {
private String[] data;
private List<String> data1;
private Spinner spinner;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner);
spinner = (Spinner)findViewById(R.id.spinner);
data = getResources().getStringArray(R.array.data);
data1 = new ArrayList<>();
for(int i = 1; i < 10; i++){
data1.add("這是第" + i +"個");
}
//data可以修改為data1,數(shù)據(jù)可以是數(shù)組也可以是集合
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,data);
spinner.setAdapter(adapter);
}
}
監(jiān)聽事件
對于Spinner使用的監(jiān)聽事件為:setOnItemSelectedListener(OnItemSelectedListener listener)
public class SpinnerActivity extends Activity implements OnItemSelectedListener {
/**
* 當item被選中時,會調(diào)用此方法
*/
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
// An item was selected. You can retrieve the selected item using
// parent.getItemAtPosition(pos)
}
/**
* 當數(shù)據(jù)項的值設置為空時,就會調(diào)用此方法,通過調(diào)用adapter.clear()方法清空數(shù)據(jù),并且刷新界面
* 時,會調(diào)用次方法
*/
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android實現(xiàn)三級聯(lián)動下拉框 下拉列表spinner的實例代碼
- Android下拉列表選項框及指示箭頭動畫
- Android自定義Spinner下拉列表(使用ArrayAdapter和自定義Adapter實現(xiàn))
- Android控件Spinner實現(xiàn)下拉列表及監(jiān)聽功能
- Android仿微信實現(xiàn)下拉列表
- Android自定義單選多選下拉列表的實例代碼
- Android仿美團淘寶實現(xiàn)多級下拉列表菜單功能
- Android使用Spinner控件實現(xiàn)下拉列表的案例
- Android下拉列表spinner的實例代碼
- Android Studio實現(xiàn)下拉列表效果
相關文章
Android IPC機制綁定Service實現(xiàn)本地通信
本文主要介紹Android IPC機制綁定Service 實現(xiàn)本地通信,通過圖解,代碼等方式給大家解釋Android IPC機制,需要參考的同學可以看一下2016-07-07
Android中ListView設置靜態(tài)數(shù)據(jù)的方法
這篇文章主要介紹了Android中ListView設置靜態(tài)數(shù)據(jù)的方法,如何為ListView設置靜態(tài)數(shù)據(jù),感興趣的小伙伴們可以參考一下2015-12-12
AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式
這篇文章主要介紹了AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android通過Java sdk的方式接入OpenCv的方法
這篇文章主要介紹了Android通過Java sdk的方式接入OpenCv的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
Android 判斷網(wǎng)絡狀態(tài)及開啟網(wǎng)路
這篇文章主要介紹了Android 判斷網(wǎng)絡狀態(tài)及開啟網(wǎng)路的相關資料,在開發(fā)網(wǎng)路狀態(tài)的時候需要先判斷是否開啟之后在提示用戶進行開啟操作,需要的朋友可以參考下2017-08-08

