1. 程式人生 > >android下拉選單spinner的使用方法

android下拉選單spinner的使用方法

Spinner控制元件也是一種列表型別的控制元件,它的繼承關係如下: 
java.lang.Object 
   ↳ android.view.View 
     ↳ android.view.ViewGroup 
       ↳ android.widget.AdapterView<Textends android.widget.Adapter> 
         ↳ android.widget.AbsSpinner 
          ↳ android.widget.Spinner 
android.widget.Spinner繼承了android.view.ViewGroup類。

在Android的UI開發中,Spinner(下拉列表)總是可以用到的,一個簡單的自定義Spinner製作我們只需要記住這重要的五步,一個Spinner就可以應用而生了。

(1)新建一個android工程,名稱為Spinner。同時建一個Activity,名稱為SpinnerActivity。

 

(2)修改res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<TextView   
		android:id = "@+id/TextView_city"   
		android:layout_width = "wrap_content"   
		android:layout_height = "wrap_content"   
		android:text = "所在城市:"   
	 />   
	 <!-- 定義一個城市資訊下拉選單-->  
	<Spinner   
		android:id = "@+id/Spinner_city"   
		android:layout_width = "wrap_content"   
		android:layout_height ="wrap_content" >   
	</Spinner >  
</LinearLayout>

(3)SpinnerActivity.java 程式碼。

package cn.com;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class SpinnerActivity extends Activity {
    /** Called when the activity is first created. */  
    private List<String> list = new ArrayList<String>();  
    private TextView myTextView;  
    private Spinner mySpinner;  
    private ArrayAdapter<String> adapter;  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        //第一步:新增一個下拉列表項的list,這裡新增的項就是下拉列表的選單項  
        list.add("北京");  
        list.add("上海");  
        list.add("深圳");  
        list.add("福州");  
        list.add("廈門");  
        myTextView = (TextView)findViewById(R.id.TextView_city);  
        mySpinner = (Spinner)findViewById(R.id.Spinner_city);  
        //第二步:為下拉列表定義一個介面卡,這裡就用到裡前面定義的list。  
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);  
        //第三步:為介面卡設定下拉列表下拉時的選單樣式。  
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
        //第四步:將介面卡新增到下拉列表上  
        mySpinner.setAdapter(adapter);  
        //第五步:為下拉列表設定各種事件的響應,這個事響應選單被選中  
        mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){  
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
                // TODO Auto-generated method stub  
                /* 將所選mySpinner 的值帶入myTextView 中*/  
                myTextView.setText("您選擇的是:"+ adapter.getItem(arg2));  
                /* 將mySpinner 顯示*/  
                arg0.setVisibility(View.VISIBLE);  
            }  
            public void onNothingSelected(AdapterView<?> arg0) {  
                // TODO Auto-generated method stub  
                myTextView.setText("NONE");  
                arg0.setVisibility(View.VISIBLE);  
            }  
        });  
        /*下拉選單彈出的內容選項觸屏事件處理*/  
        mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){  
            public boolean onTouch(View v, MotionEvent event) {  
                // TODO Auto-generated method stub  
                /**
                 * 
                 */
                return false;  
            }
        });  
        /*下拉選單彈出的內容選項焦點改變事件處理*/  
        mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){  
        public void onFocusChange(View v, boolean hasFocus) {  
        	// TODO Auto-generated method stub  

        }  
        });  
    }  
}

執行結果如下圖所示:




相關推薦

android選單spinner的使用方法

Spinner控制元件也是一種列表型別的控制元件,它的繼承關係如下:  java.lang.Object     ↳ android.view.View       ↳ android.view.ViewGroup         ↳ android.widget.Adap

Android列表Spinner更改邊框和箭頭

直接在drawable檔案下建立xml檔案,寫spinner控制元件的時候background屬性引用樣式即可,程式碼中有詳細註釋 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns

Ajax動態訪問資料庫設計html多級select選單方法

getArea(0,$('<select>'));//呼叫方法,第一個引數是要查詢專案的id,根據資料庫來就好,第二個引數是一個select物件,可以是現有的,也可以生成一個新的在頁面重新

Bootstrap選單使用方法

如何使用Bootstrap下拉選單元件 Bootstrap下拉選單元件使用起來非常容易,首先你需要定義一個class="dropdown"的div,然後在這個div標籤中寫入觸發下拉框的按鈕以及對應的下拉選單,類似程式碼如下:<div class="dropdo

android選單三級聯動

package com.example.spinner; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import an

Android使用控制元件Spinner實現選單列表

實現效果如下: 1.實現程式碼 package com.example.testspanner; import java.util.ArrayList; import java.util.Li

Android零基礎入門第46節:Spinner

targe GridView 通過 寫代碼 top tel 前世今生 spa oncreate 上一期學習了GridView的使用,你已經掌握了嗎?本期一起來學習Spinner的使用。 一、認識Spinner Spinner其實就是一個列表選擇框

android列表(spinner

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_

bootstarp選單的使用方法

<nav class="navbar navbar-fixed-top" style="background-color: white;"> <div class="container" > <div class="dropdown"&g

用CSS實現選單功能(過於冗餘,此方法不建議)

<style> .dropdown{ position:relative; display:inline-block; } .dropbtn{ background-color:#4CAF50; color:white; padding:16

3種方法實現導航選單欄中的二級選單

我們在淘寶、搜狐等大型網站上都可以看到使用的一些二級下拉選單,比如下面這張圖片。我們有至少三種方式來實現,附上程式碼供大家參考。   1.僅使用html和css <!DOCTYPE html><html lang="en"><head><meta

android PopupWindow巢狀ListView(模仿分類選單效果)

先看下UI效果 這就是使用PopupWindow巢狀ListView實現的,這個簡單,不做多介紹直接上程式碼 1:佈局檔案 <span style="font-size:18px;"><RelativeLayout xmlns:android="ht

【解決方法】點選bootstrap上的選單無反應

遇到問題是:點選bootstrap裡的下拉選單沒有反應 正常情況是點選時應該是由以下 變為 這樣下拉選單會正常出來 參照網上解決方法是:匯入的.js順序錯誤 1.匯入bootstrap的.css檔案 2.匯入jquery的.js檔案 3.匯入bootstrap

Android通知欄會影響Activity的生命週期方法嗎?

很好奇,下拉通知欄會影響Activity的生命週期方法嗎? 在Activity的方法裡面加上呼叫的Log public class MainActivity extends AppCompatA

選單被表單擋住的幾種解決方法

當層遇到下拉框時總是擋不了select框?其實這是IE的BUG,其它的瀏覽器沒有這個問題,對於這個問題論壇裡不少提出,在這裡提供我的幾種方法,各有各的好處,有錯,有好的意見者提出,謝謝.1.最直接的方法:隱藏下拉框.下面提供的是一個比較通用的一組函式:test.htm<

在visual studio 2017用xamarin for android 做個簡單的註冊頁面,包含單選控制元件,多選控制元件和選單控制元件

照著牛腩老師的視訊,自己做了個註冊頁面,實現了簡單的單選控制元件、多選控制元件、下拉選單控制元件的使用,由於日曆控制元件太醜,就不模仿了,下面就是reg.axml的佈局效果,後面是程式碼。 , <?xml version="1.0" encoding="utf-8"?

bootstrap的dropdown-menu(選單)點選選項後不關閉的方法

下面的例子是bootstrap下拉選單的例子 1、html <div class="dropdown"> <button type="button" class="btn dropdown-toggle" id="dro

android選單選單的實現

android關於下拉選單功能網上有很多實現demo,但我想要的是上拉選單,如下圖: 說勉強是剛好滿足自己的需求,而不能大眾化,如上圖中只有將Button等控制元件至於佈局底部才能實現理想效果。 demo原始碼見:

Android PopupWindow實現從頂部彈出選單左、中、右

          本例項的自定義下拉選單主要是繼承PopupWindow類來實現的彈出窗體,各種佈局效果可以根據自己定義設計。彈出的動畫效果主要用到了translate、alpha、scale,具體實現步驟如下:          先上效果圖如下:左邊下拉選單、中間下拉選

android利用PopupWindow實現點選工具欄彈出選單

package com.example.dropdownmenu; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bu