国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邯郸市| 临洮县| 易门县| 峨山| 嘉定区| 永康市| 两当县| 广水市| 新沂市| 尖扎县| 康乐县| 肃南| 当雄县| 馆陶县| 大竹县| 广灵县| 锦州市| 鄂尔多斯市| 涞源县| 北宁市| 邳州市| 通辽市| 阿拉善右旗| 泰顺县| 同仁县| 马关县| 潮安县| 新乡县| 永定县| 芮城县| 平顶山市| 平凉市| 全州县| 延长县| 城步| 滦南县| 嘉黎县| 东丽区| 银川市| 宁城县| 岑溪市|