spinner就相當於Html中的下拉式清單方塊,在下面的例子裡我們共同學習一下spinner的使用。
屬性:
屬性名稱 |
描述 |
android:prompt |
該提示在下拉式清單對話方塊顯示時顯示。(譯者註:對話方塊的標題: |
方法
:
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所代表的提示。
範例:
package android.imageview;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class ImageView1Activity extends Activity {
/** Called when the activity is first created. */
private Spinner spinner = null;
private ArrayAdapter<String> adapter = null;
private List<String> list = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner = (Spinner)findViewById(R.id.spinner);
spinner.setPrompt("請選擇你喜歡的水果?");
list = new ArrayList<String>();
list.add("蘋果");
list.add("香蕉");
list.add("梨");
list.add("桃");
adapter = new ArrayAdapter<String>(ImageView1Activity.this, android.R.layout.simple_dropdown_item_1line,list);
spinner.setAdapter(adapter);
}
}
另一種方法:
package android.imageview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class ImageView1Activity extends Activity {
/** Called when the activity is first created. */
private Spinner spinner1 = null;
private ArrayAdapter<CharSequence> adapter = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner1 = (Spinner)findViewById(R.id.spinner1);
spinner1.setPrompt("你要以後在哪工作?");
adapter = ArrayAdapter.createFromResource(this,R.array.city,android.R.layout.simple_spinner_item);
spinner1.setAdapter(adapter);
}
}
[java] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, ImageView1Activity!</string>
<string name="app_name">ImageView1</string>
<string-array name = "city">
<item>山東</item>
<item>上海</item>
<item>北京</item>
<item>大連</item>
</string-array>
</resources>
載入進事件:
package android.imageview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class ImageView1Activity extends Activity {
/** Called when the activity is first created. */
private Spinner spinner1 = null;
private ArrayAdapter<CharSequence> adapter = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner1 = (Spinner)findViewById(R.id.spinner1);
spinner1.setPrompt("你要以後在哪工作?");
adapter = ArrayAdapter.createFromResource(this,R.array.city,android.R.layout.simple_spinner_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(ImageView1Activity.this,"選擇的城市是:" +spinner1.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
}
}
摘自 落日小屋