前言
本章內容是 android.widget.Spinner,譯為"下拉列表",版本為Android 2.2 r1,翻譯來(lái)自"思考的狼",歡迎大家訪(fǎng)問(wèn)他的博客:http://blog.163.com/sikaodelang@126/ ,再次感謝"思考的狼" !期待你一起參與Android API 的中文翻譯,聯(lián)系我over140@gmail.com。
聲明
歡迎轉載,但請保留文章原始出處:)
博客園:http://www.cnblogs.com/
Android中文翻譯組:http://www.cnblogs.com/over140/
正文
一、結構
public final class Spinner extends AbsSpinner
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.AdapterView<T extends android.widget.Adapter>
android.widget.AbsSpinner
android.widget.Spinner
二、概述
下拉列表(Spinner)是一個(gè)每次只能選擇所有項中一項的部件。它的項來(lái)自于與之相關(guān)聯(lián)的適配器中。
三、XML屬性
| 屬性名稱(chēng) | 描述 |
| android:prompt | 該提示在下拉列表對話(huà)框顯示時(shí)顯示。(譯者注:對話(huà)框的標題: |
四、公共方法
public int getBaseline()
返回這個(gè)控件文本基線(xiàn)的偏移量。如果這個(gè)控件不支持基線(xiàn)對齊,那么方法返回-1.
返回值
返回控件基線(xiàn)左邊邊界位置,不支持時(shí)返回-1
(譯者注:這個(gè)類(lèi)不知道干什么用,只找到下面的代碼:
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()
返回值
當對話(huà)框彈出的時(shí)候顯示的提示(譯者注:獲得彈出視圖上的標題字)
public void onClick(DialogInterface dialog, int which)
當點(diǎn)擊彈出框中的項時(shí)這個(gè)方法將被調用。
參數
dialog 點(diǎn)擊彈出的對話(huà)框
which 點(diǎn)擊按鈕(如:Button)或者點(diǎn)擊位置
public Boolean performClick()
如果它被定義就調用此視圖的OnClickListener(譯者注:例如可以在加載時(shí)默認彈出下拉列表)。
返回值
為True一個(gè)指定的OnClickListener被調用,為false時(shí)不被調用。
public void setOnItemClickListener(AdapterView.OnItemClickListener I)
Spinner不支持item的點(diǎn)擊事件,調用此方法將引發(fā)異常。
參數
l 這個(gè)監聽(tīng)將被忽略
public void setPromptId(CharSequence prompt)
設置對話(huà)框彈出的時(shí)候顯示的提示(譯者注:設置彈出視圖上的標題字)
參數
prompt 設置的提示
public void setPromptId(int promptId)
設置對話(huà)框彈出的時(shí)候顯示的提示(譯者注:設置彈出視圖上的標題字)
參數
prompted 當對話(huà)框顯示是顯示這個(gè)資源id所代表的提示。
五、受保護方法
protected void onDetachedFromWindow ()
當這個(gè)視圖從屏幕上卸載時(shí)候被調用。在這一點(diǎn)上不再繪制視圖。
protected void onLayout (boolean changed, int l, int t, int r, int b)
當View要為所有子對象分配大小和位置時(shí),調用此方法。派生類(lèi)與子項們應該重載這個(gè)方法和調用布局每一個(gè)子項。
參數
changed 這是這個(gè)視圖的一個(gè)新的大小或位置
l 相對父空間的左位置
t 相對父空間的頂端位置
r 相對父空間的右端位置
b 相對父空間的底部位置
參見(jiàn)
Creates and positions all views
六、補充
文章鏈接
Android學(xué)習指南——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>
結束
感謝"思考的狼"為文章提供完善的翻譯及示例:)