android:Spinner(下拉框)控制項的使用

來源:互聯網
上載者:User

標籤:

android:Spinner(下拉框)控制項的使用

建立分頁檔(main.xml)  

 1     <Spinner

 2         android:id="@+id/spinner1"

 3         android:layout_width="match_parent"

 4         android:layout_height="wrap_content" />

 5 

 6     <TextView

 7         android:id="@+id/tvResult"

 8         android:layout_width="match_parent"

 9         android:layout_height="wrap_content"

10         android:text="選擇的水果" />

 

 建立下拉框的資料來源 

 

1        List<String> list = new ArrayList<String>();

2        list.add("蘋果"); 

5        list.add("香蕉"); 

7        list.add("橘子"); 

9        list.add("香蕉");

 

 建立適配器(下拉框的資料來源是來自適配器) 

 

ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);

 為適配器添加樣式      

 

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

 

         系統提供的樣式如下

 

l  simple_spinner_dropdown_item(列表-間距較高比較好看)

 

clip_image004[10]

 

l  simple_spinner_item(列表-間距緊湊不好看)

 

clip_image006[10]

 

l  simple_list_item_checked(複選框-選中的有綠溝)

 

clip_image008[10]

 

l  simple_list_item_single_choice (選項按鈕)

 

clip_image010[10]

 

 向控制項Spinner添加適配器 

 

1       Spinner sp=(Spinner) findViewById(R.id.spinner1);

2       sp.setAdapter(adapter); 

 

     釋義 

 

     1. setAdapter(SpinnerAdapter adapter) ,從類的繼承關係上看,ArrayAdapter是SpinnerAdapter介面的間接實作類別

 

clip_image012[10] 

 

 實現選擇項事件(使用匿名類實現介面)  

 

 1         sp.setOnItemSelectedListener(new OnItemSelectedListener() {

 2             // parent: 為控制項Spinner   view:顯示文字的TextView   position:下拉選項的位置從0開始  

 3             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

 4                 TextView tvResult = (TextView) findViewById(R.id.tvResult);

 5                 //擷取Spinner控制項的適配器

 6                 ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();

 7                 tvResult.setText(adapter.getItem(position));

 8             }

 9              //沒有選中時的處理

10             public void onNothingSelected(AdapterView<?> parent) {

11             }

12         });

 

 後台整體代碼如下  

 

 1     public void onCreate(Bundle savedInstanceState) {

 2         super.onCreate(savedInstanceState);

 3         setContentView(R.layout.main);

 4         List<String> list = new ArrayList<String>();

 5         list.add("蘋果");

 6         list.add("香蕉");

 7         list.add("橘子");

 8         list.add("香蕉");

 9         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);

10         adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);

11         Spinner sp = (Spinner) findViewById(R.id.spinner1);

12         sp.setAdapter(adapter);

13         sp.setOnItemSelectedListener(new OnItemSelectedListener() {

14             // parent: 為控制項Spinner   view:顯示文字的TextView   position:下拉選項的位置從0開始  

15             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

16                 TextView tvResult = (TextView) findViewById(R.id.tvResult);

17                 //擷取Spinner控制項的適配器

18                 ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();

19                 tvResult.setText(adapter.getItem(position));

20             }

21              //沒有選中時的處理

22             public void onNothingSelected(AdapterView<?> parent) {

23             }

24         });

25     }

 

android:Spinner(下拉框)控制項的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.