Android UI控件之Spinner下拉列表效果
下拉列表---Spinner用于顯示列表項,類似于一組單選按鈕RadioButton。Spinner的使用,可以極大的提升用戶的體驗性。當需要用戶選擇的時候,可以提供一個下拉列表項給用戶選擇。
具體來說下拉列表是如何實現的呢?
通過查閱API知道Spinner繼承AdapterView,因此它的數據源需要通過Adapter實現。
一般來說Spinner的數據源可以是數組,也可以是一個XML文件。
一、以數組作為數據源
這種實現方式比較簡單,先上效果圖:
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="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Spinner演示" android:layout_gravity="center_horizontal"/> <TextView android:id="@+id/result" android:text="你的選擇:" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
MainActivity文件代碼:
package com.kiritor.ui_spinner; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { private TextView result = null; private Spinner spinner = null; private ArrayAdapter<String> adapter = null; private static final String [] langurage ={"機器語言","匯編","c語言","c++語言","java語言"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); result = (TextView)findViewById(R.id.result); spinner = (Spinner)findViewById(R.id.spinner); adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,langurage); //設置下拉列表風格 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //將適配器添加到spinner中去 spinner.setAdapter(adapter); spinner.setVisibility(View.VISIBLE);//設置默認顯示 spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub result.setText("你的選擇是:"+((TextView)arg1).getText()); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
二、以xml文件作為數據源
先上效果圖吧:
數據源xml文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="langurage"> <item>機器語言</item> <item>匯編語言</item> <item>c語言</item> <item>c++語言</item> <item>java語言</item> <item>Android學習</item> </string-array> </resources>
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="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Spinner演示" android:layout_gravity="center_horizontal"/> <TextView android:id="@+id/result" android:text="你的選擇:" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
MainActivity
package com.kiritor.ui_spinner; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { private TextView result = null; private Spinner spinner = null; private ArrayAdapter<CharSequence> adapter = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); result = (TextView)findViewById(R.id.result); spinner = (Spinner)findViewById(R.id.spinner); <span style="color:#FF0000;">adapter = ArrayAdapter.createFromResource(this,R.array.langurage,android.R.layout.simple_spinner_item);</span> //設置下拉列表風格 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //將適配器添加到spinner中去 spinner.setAdapter(adapter); spinner.setVisibility(View.VISIBLE); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub result.setText("你的選擇是:"+((TextView)arg1).getText()); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
今天就到這里了,至于spinner的自定義用法和一些Spinner的實際用法舉例,下次再說!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android UI設計與開發(fā)之ViewPager仿微信引導界面以及動畫效果
這篇文章主要為大家詳細介紹了Android UI設計與開發(fā)之ViewPager仿微信引導界面以及動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08RecyclerView+SnapHelper實現無限循環(huán)篩選控件
這篇文章主要為大家詳細介紹了RecyclerView+SnapHelper實現無限循環(huán)篩選控件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10Android 動畫之TranslateAnimation應用詳解
本節(jié)講解TranslateAnimation動畫,TranslateAnimation比較常用,比如QQ,網易新聞菜單條的動畫,就可以用TranslateAnimation實現,本文將詳細介紹通過TranslateAnimation 來定義動畫,需要的朋友可以參考下2012-12-12