国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使用 Spinner控件實現下拉框功能

2019-10-21 21:40:40
字體:
來源:轉載
供稿:網友

Spinner是android的一種控件,用它我們可以實現下拉框

我們先來看一下效果圖

Android,Spinner,下拉框

Android,Spinner,下拉框

這是一個很簡單的功能,上面一個TextView,下面一個Spinner,TextView用于顯示Spinner選擇的選項。

下面我們就來看一下實現吧。

首先,我們先在xml文件中將spinner寫出

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:id="@+id/spinner_textview"/> <Spinner  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:id="@+id/spinner1"></Spinner></LinearLayout>

類似于ListView,Spinner也需要一個List和一個Adapter來為其提供顯示的數據。

public class MainActivity extends AppCompatActivity { private List<String> teamList; private TextView textView; private Spinner spinner1; private ArrayAdapter<String> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  initView();  //設置下拉列表的風格  arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  //將adapter 添加到spinner中  spinner1.setAdapter(arrayAdapter);  //設置點擊事件  spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {   @Override   public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {    textView.setText(teamList.get(i));   }   @Override   public void onNothingSelected(AdapterView<?> adapterView) {   }  }); } public void initView(){  teamList = new ArrayList<>();  initList();  textView = findViewById(R.id.spinner_textview);  spinner1 = findViewById(R.id.spinner1);  arrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,teamList); } public void initList(){  teamList.add("羅馬");  teamList.add("那不勒斯");  teamList.add("國際米蘭");  teamList.add("AC米蘭"); }}

源碼地址

下面單獨看下Spinner的功能和用法

Spinner其實是一個列表選擇框,不過Android的列表選擇框并不需要顯示下拉列表,而是相當于彈出一個菜單供用戶選擇。

Spinner與Gallery都繼承了AbsSpinner,AbsSpinner繼承了AdapterView,因此他也表現出AdapterView的特征:只要為AdapterView提供Adapter即可。

android:entries屬性并不是Spinner定義的,而不是AbsSpinner中定義的,因此Gallery(繼承了AbsSpinner)也支持該XML屬性。

如果開發者使用Spinner時已經可以確定列表選擇框里的列表項,則完全不需要編寫代碼,只要為Spinner指定android:entries屬性即可讓Spinner正常工作;如果程序需要在程序運行時動態決定Spinner的列表項,或者程序需要對Spinner的列表項進行定制,則可使用Adapter提供列表項。

如下界面布局文件中定義了兩個Spinner組件,其中一個Spinner組件指定了android:entries屬性,因此需要在Activity中為他設置Adapter。

<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"> <!--定義一個Spinner組件,指定顯示該Spinner組件的數組--> <Spinner  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:entries="@array/books"  android:popupBackground="#66ccff"  android:dropDownWidth="230dp"  ></Spinner> <Spinner  android:id="@+id/spinner"  android:layout_width="match_parent"  android:layout_height="wrap_content"  ></Spinner></LinearLayout>public class MainActivity extends AppCompatActivity { Spinner spinner; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  //獲取界面布局文件的Spinner組件  spinner= (Spinner) findViewById(R.id.spinner);  String[] arr={"孫悟空","豬八戒","唐僧"};  //創建ArrayAdapter對象  ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,arr);  spinner.setAdapter(adapter); }}
 


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽州县| 读书| 乐业县| 普兰店市| 张家川| 霍邱县| 牡丹江市| 五常市| 韶关市| 长治市| 象州县| 濮阳市| 河北省| 赤峰市| 河西区| 南郑县| 神池县| 松溪县| 英吉沙县| 琼结县| 万安县| 镇巴县| 泰来县| 淳安县| 阳春市| 藁城市| 康乐县| 上犹县| 玉林市| 永兴县| 沽源县| 会理县| 从江县| 汝州市| 台安县| 宁远县| 青浦区| 青浦区| 裕民县| 阿克| 竹溪县|