Android 中文API (38) —— Spinner

前言html

  本章內容是 android.widget.Spinner,譯爲"下拉列表",版本爲Android 2.2 r1,翻譯來自"思考的狼",歡迎你們訪問他的博客:http://blog.163.com/sikaodelang@126/ ,再次感謝"思考的狼" !期待你一塊兒參與Android API 的中文翻譯,聯繫我over140@gmail.com。
 java

 

聲明android

  歡迎轉載,但請保留文章原始出處:)
 app

    博客園:http://www.cnblogs.com/ide

    Android中文翻譯組:http://www.cnblogs.com/over140/  佈局

 

正文學習

  1、結構測試

    public final class Spinner extends AbsSpinnerui

 
 

    java.lang.Objectthis

    android.view.View

      android.view.ViewGroup

                  android.widget.AdapterView<T extends android.widget.Adapter>

                       android.widget.AbsSpinner

                                android.widget.Spinner

 

  2、概述
 

 

下拉列表(Spinner)是一個每次只能選擇全部項中一項的部件。它的項來自於與之相關聯的適配器中。

 

  3、XML屬性
 

屬性名稱

描述

android:prompt

該提示在下拉列表對話框顯示時顯示。(譯者注:對話框的標題:

 

 

  4、公共方法
 

public int getBaseline()

返回這個控件文本基線的偏移量。若是這個控件不支持基線對齊,那麼方法返回-1.

返回值

返回控件基線左邊邊界位置,不支持時返回-1

                   (譯者注:這個類不知道幹什麼用,只找到下面的代碼:

  public   class  AndroidBamboo  extends  Activity 
{
    
public   void  onCreate( Bundle savedInstanceState ) 
    {
     
super .onCreate ( savedInstanceState );
        Spinner spinner 
=   new  Spinner (  this  );
        spinner.setPrompt( 
" 500 "  );
        String [ ] items 
=  {  " bam " " boo " " lab " " code " " programming " " framework " " android "  };

        ArrayAdapter array_adapter 
=   new  ArrayAdapter  < String >  (  this , android.R.layout.simple_spinner_item, items );
        array_adapter.setDropDownViewResource ( android.R.layout.simple_spinner_dropdown_item );
        spinner.setAdapter ( array_adapter );
        
int  baseline  =  spinner.getBaseline ( );
        setContentView ( spinner );
    }
}

 

 

public CharSequence getPrompt()

  返回值    

當對話框彈出的時候顯示的提示(譯者注:得到彈出視圖上的標題字)

 

public void onClick(DialogInterface dialog, int which)

當點擊彈出框中的項時這個方法將被調用。

  參數

  dialog       點擊彈出的對話框

  which      點擊按鈕(如:Button)或者點擊位置

 

public Boolean performClick()

若是它被定義就調用此視圖的OnClickListener(譯者注:例如能夠在加載時默認彈出下拉列表)。

  返回值

True一個指定的OnClickListener被調用,爲false時不被調用。

 

public void setOnItemClickListener(AdapterView.OnItemClickListener I)

     Spinner不支持item的點擊事件,調用此方法將引起異常。

參數

  l        這個監聽將被忽略

 

public void setPromptId(CharSequence prompt)

設置對話框彈出的時候顯示的提示(譯者注:設置彈出視圖上的標題字)

參數

prompt     設置的提示

 

public void setPromptId(int promptId)

設置對話框彈出的時候顯示的提示(譯者注:設置彈出視圖上的標題字)

參數

  prompted 當對話框顯示是顯示這個資源id所表明的提示。

 

  5、受保護方法

 

protected void onDetachedFromWindow ()

當這個視圖從屏幕上卸載時候被調用。在這一點上再也不繪製視圖。

 

protected void onLayout (boolean changed, int l, int t, int r, int b)

View要爲全部子對象分配大小和位置時,調用此方法。派生類與子項們應該重載這個方法和調用佈局每個子項。

         參數

changed   這是這個視圖的一個新的大小或位置

l        相對父空間的左位置

t        相對父空間的頂端位置

r        相對父空間的右端位置

b       相對父空間的底部位置

參見

Creates and positions all views 

 

  6、補充
 

    文章連接

                   Android學習指南——Spinner 下拉列表

                   android自定義Spinner下拉菜單(下拉列表框)樣式

    示例代碼

      Java代碼

public   class  SpinnerActivity  extends  Activity {
    
/**  Called when the activity is first created.  */
    String mes 
=   " Wolf " ;
    
private   static   final  String[] m_arr  =  { " 第一組 " , " 第二組 " , " 第三組 " };
    @Override
    
public   void  onCreate(Bundle savedInstanceState) {
        
super .onCreate(savedInstanceState);
        setContentView(R.layout.main); 
       Spinner s1 
=  (Spinner)findViewById(R.id.Spinner01); 
       s1.setPrompt(
" 請選擇顏色 "  ); 
       
// ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinnercolor,android.R.layout.simple_spinner_item);
       ArrayAdapter < String >  adapter  =   new  ArrayAdapter < String > ( this , android.R.layout.simple_spinner_item, m_arr);
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   
       s1.setAdapter(adapter);  
           s1.setSelection(
1 , true );
       
// s1.setPromptId(CONTEXT_INCLUDE_CODE);
      
       
       
int  baseline  =  s1.getBaseline();
       s1.performClick(); 
       s1.setOnItemSelectedListener(
new  Spinner.OnItemSelectedListener(){
           
public   void  onItemSelected(AdapterView <?>  arg0, View arg1,  int  arg2,  long  arg3){
               dispToast(
" 選擇的是 " + m_arr[arg2]);
               arg0.setVisibility(View.VISIBLE);
           }
           
public   void  onNothingSelected(AdapterView <?>  arg0){
               
//
           }
       });
         Toast.makeText(
this , s1.getPrompt() ,Toast.LENGTH_LONG).show();
    }
    
public   void  dispToast(String str){
        Toast.makeText(
this , str, Toast.LENGTH_SHORT).show();
    }   
}

      XML資源文件

<? xml version="1.0" encoding="utf-8" ?>
< resources >
    
< string  name ="hello" > Hello World, SpinnerActivity! </ string >
    
< string  name ="app_name" > Spinner測試 </ string >
< string-array  name ="spinnercolor" >
< item > 紅色 </ item >
< item > 綠色 </ item >
< item > 白色 </ item >
< item > 橙色 </ item >
</ string-array >
< string  name ="planet_prompt" > Please Choose a Item! </ string >
</ resources >


 

結束
 

  感謝"思考的狼"爲文章提供完善的翻譯及示例:)

相關文章
相關標籤/搜索