一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android Spinner:下拉列表控件

 印度阿三17 2019-07-14

Spinner 提供下拉列表式的輸入方式,該方法可以有效節(jié)省手機(jī)屏幕上的顯示空間。

下面用一個(gè)簡單的實(shí)例講解 Spinner 的使用方法。在工程 WidgetDemo 的布局文件 main.xml 中添加一個(gè) Button,用以啟動 SpinnerActivity。

在 main.xml 中添加代碼如下:


?
  1. <Button
  2. android:id="@ id/button4"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:text="SpinnerDemo"/>

單擊 Button 并啟動 SpinnerActivity 的代碼如下


?
  1. Button spinnerbtn = (Button) this.findViewById(R.id.button4);
  2. spinnerbtn.setOnClickListener(new View.OnClickListener() {
  3. @Override
  4. public void onClick(View v) {
  5. Intent intent = new Intent(MainActivity.this, SpinnerActivity.class);
  6. startActivity(intent);
  7. }
  8. });

同時(shí)在 AndroidManifest.xml 文件中聲明該 Activity:

<activity android:name=".SpinnerActivity "></activity>

SpinnerActivity 的運(yùn)行效果如圖 1 所示。

Spinner的應(yīng)用界面
圖 1??Spinner 的應(yīng)用界面


SpinnerActivity 使用的布局文件為 spiner.xml,其代碼如下:


?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas./apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <TextView
  7. android:id="@ id/textView1"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="textview"/>
  11. <Spinner
  12. android:id="@ id/spinner1"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"/>
  15. </LinearLayout>

SpinnerActivity.java 文件的代碼如下:


?
  1. package introduction.android.widgetDemo;
  2. ?
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. ?
  6. import android.app.Activity;
  7. import android.os.Bundle;
  8. import android.view.MotionEvent;
  9. import android.view.View;
  10. import android.widget.AdapterView;
  11. import android.widget.ArrayAdapter;
  12. import android.widget.Spinner;
  13. import android.widget.TextView;
  14. ?
  15. public class SpinnerActivity extends Activity {
  16. ?
  17. private List<String> list = new ArrayList<String>();
  18. private TextView textview;
  19. private Spinner spinnertext;
  20. private ArrayAdapter<String> adapter;
  21. ?
  22. public void onCreate(Bundle savedlnstanceState) {
  23. super.onCreate(savedlnstanceState);
  24. setContentView(R.layout.spiner);
  25. //第一步:定義下拉列表內(nèi)容
  26. list.add("A型");
  27. list.add("B型");
  28. list.add("O型");
  29. list.add("AB型");
  30. list.add("其他");
  31. textview = (TextView) findViewByld(R.id.textViewl);
  32. spinnertext = (Spinner) findViewByld(R.id.spinnerl);
  33. //第二步:為下拉列表定義一個(gè)適配器
  34. adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
  35. //第三步:設(shè)置下拉列表下拉時(shí)的菜單樣式
  36. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  37. //第四步:將適配器添加到下拉列表上
  38. spinnertext.setAdapter(adapter);
  39. //第五步:添加監(jiān)聽器,為下拉列表設(shè)置事件的響應(yīng)
  40. spinnertext.setOnltemSelectedListener(new Spinner.OnltemSelectedListener() {
  41. public void onltemSelected(AdapterView<?> argO, View argl, int arg2, long arg3) {
  42. // TODO Auto-generated method stub
  43. /* 將所選spinnertext的值帶入myTextView中*/
  44. textview.setText("你的血型是:" adapter.getItem(arg2));
  45. /* 將 spinnertext 顯示^*/
  46. argO.setVisibility(View.VISIBLE);
  47. }
  48. ?
  49. public void onNothingSelected(AdapterView<?> argO) {
  50. // TODO Auto-generated method stub
  51. textview.setText("NONE");
  52. argO.setVisibility(View.VISIBLE);
  53. }
  54. });
  55. ?
  56. //將spinnertext添加到OnTouchListener對內(nèi)容選項(xiàng)觸屏事件處理
  57. spinnertext.setOnTouchListener(new Spinner.OnTouchListener() {
  58. @Override
  59. public boolean onTouch(View v, MotionEvent event) {
  60. // TODO Auto-generated method stub
  61. // 將mySpinner隱藏
  62. v.setVisibility(View.INVISIBLE);
  63. Log.i("spinner", "Spinner Touch事件被觸發(fā)!");
  64. return false;
  65. }
  66. });
  67. ?
  68. //焦點(diǎn)改變事件處理
  69. spinnertext.setOnFocusChangeListener(new Spinner.OnFocusChangeListener() {
  70. public void onFocusChange(View v, boolean hasFocus) {
  71. // TODO Auto-generated method stub
  72. v.setVisibility(View.VISIBLE);
  73. Log.i("spinner", "Spinner FocusChange事件被觸發(fā)!");
  74. }
  75. });
  76. ?
  77. }
  78. }

SpinnerActivity 通過 5 個(gè)步驟將 Spinner 初始化并進(jìn)行事件處理,分別為:

  • 定義下拉列表的列表項(xiàng)內(nèi)容 List<String>。
  • 為下拉列表 Spinner 定義一個(gè)適配器 ArrayAdapter<String> ,并與列表項(xiàng)內(nèi)容相關(guān)聯(lián)。
  • 使用 ArrayAdapter.setDropDownViewResource() 設(shè)置 Spinner 下拉列表在打開時(shí)的下拉菜單樣式。
  • 使用 Spinner. setAdapter() 將適配器數(shù)據(jù)與 Spinner 關(guān)聯(lián)起來。
  • 為 Spinner 添加事件監(jiān)聽器,進(jìn)行事件處理。


在本實(shí)例中,SpinnerActivity 在程序代碼中動態(tài)建立了下拉列表每一項(xiàng)的內(nèi)容。除此之外,還可以在 XML 文件中定義 Spinner 的下拉列表項(xiàng),步驟如下。

1)在 res/values 文件夾下新建 cities.xml 文件夾:


?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="city">
  4. <item>A型</item>
  5. <item>B型</item>
  6. <item>AB型</item>
  7. <item>O型</item>
  8. <item>其他</item>
  9. </string-array>
  10. </resources>

2)在 SpinnerActivity.java 中初始化 Spinner:


?
  1. Spinner spinner=(Spinner)findViewById(R.id.spinner1);
  2. ArrayAdapter<CharSequence> adapter=ArrayAdapter.createF
  3. romResource(this, R.array.city,android.R.layout.simple_spinner_item);
  4. adapter.setDropDownViewResource
  5. (android.R.layout.simple_spinner_dropdown_item);
  6. spinner.setAdapter(adapter);
來源:https://www./content-4-327351.html

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久热中文字幕在线视频| 欧美国产日本免费不卡| 中文字幕高清不卡一区| 国产精品熟女乱色一区二区| 欧美自拍偷自拍亚洲精品| 国产精品白丝久久av| 国产一区二区三区成人精品| 91精品蜜臀一区二区三区| 成人国产激情在线视频| 色偷偷亚洲女人天堂观看| 久热人妻中文字幕一区二区| 欧美精品激情视频一区| 91麻豆精品欧美视频| 四季av一区二区播放| 91插插插外国一区二区| 国产精品久久精品国产| 在线免费不卡亚洲国产| 精品一区二区三区人妻视频| 欧美有码黄片免费在线视频| 国内精品一区二区欧美| 欧美多人疯狂性战派对| 日本欧美一区二区三区在线播| 亚洲一区二区三区免费的视频| 少妇肥臀一区二区三区| 亚洲一区二区精品免费| 日韩中文字幕在线不卡一区| 免费国产成人性生活生活片| 九九热最新视频免费观看| 亚洲欧美国产网爆精品| 欧美多人疯狂性战派对| 欧美日韩精品一区二区三区不卡| 欧美成人免费视频午夜色| 三级理论午夜福利在线看| 日韩三极片在线免费播放| 国产真人无遮挡免费视频一区| 欧美一级特黄特色大色大片| 婷婷激情四射在线观看视频 | 91播色在线免费播放| 亚洲av专区在线观看| 午夜直播免费福利平台| 亚洲婷婷开心色四房播播|