Android 控件之Spinner
2010-12-10 08:40
351 查看
Spinner用来显示列表项,类似于一组单选框RadioButton.
源码下载
一、概述
Spinner是一个每次只能选择所有项的一个项的控件。它的项来自于与之相关联的适配器中。
二、重要属性
android:prompt:当Spinner对话框关闭时显示该提示
三、重要方法
setPrompt(CharSequence prompt):设置当Spinner对话框关闭时显示的提示
performClick():如果它被定义就调用此视图的OnClickListener
setOnItemClickListener(AdapterView.OnItemClickListener l):当项被点击时调用
onDetachedFromWindow():当Spinner脱离窗口时被调用。
四、完整代码
public class SpinnerDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinnerpage);
Spinner s1 = (Spinner) findViewById(R.id.spinnercolor);
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
s1.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView parent, View view, int position, long id) {
showToast("Spinner1: position=" + position + " id=" + id);
}
public void onNothingSelected(AdapterView parent) {
showToast("Spinner1: unselected");
}
});
Spinner s2 = (Spinner) findViewById(R.id.spinnerplanet);
adapter = ArrayAdapter.createFromResource(this, R.array.planets,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter);
s2.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView parent, View view, int position, long id) {
showToast("Spinner2: position=" + position+1 + " id=" + id+1);
}
public void onNothingSelected(AdapterView parent) {
showToast("Spinner2: unselected");
}
});
}
private void showToast(CharSequence msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
}
android中spinner初始化后的默认项如何设置 :setSelection方法
修改字体需要自定义adapter:
Java code
源码下载
一、概述
Spinner是一个每次只能选择所有项的一个项的控件。它的项来自于与之相关联的适配器中。
二、重要属性
android:prompt:当Spinner对话框关闭时显示该提示
三、重要方法
setPrompt(CharSequence prompt):设置当Spinner对话框关闭时显示的提示
performClick():如果它被定义就调用此视图的OnClickListener
setOnItemClickListener(AdapterView.OnItemClickListener l):当项被点击时调用
onDetachedFromWindow():当Spinner脱离窗口时被调用。
四、完整代码
public class SpinnerDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinnerpage);
Spinner s1 = (Spinner) findViewById(R.id.spinnercolor);
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
s1.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView parent, View view, int position, long id) {
showToast("Spinner1: position=" + position + " id=" + id);
}
public void onNothingSelected(AdapterView parent) {
showToast("Spinner1: unselected");
}
});
Spinner s2 = (Spinner) findViewById(R.id.spinnerplanet);
adapter = ArrayAdapter.createFromResource(this, R.array.planets,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter);
s2.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView parent, View view, int position, long id) {
showToast("Spinner2: position=" + position+1 + " id=" + id+1);
}
public void onNothingSelected(AdapterView parent) {
showToast("Spinner2: unselected");
}
});
}
private void showToast(CharSequence msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
}
android中spinner初始化后的默认项如何设置 :setSelection方法
修改字体需要自定义adapter:
Java code
private class MyArrayAdapter<String> extends ArrayAdapter<String> { public MyArrayAdapter(Context context, String[] resourceId, int textViewResourceId) { super(context, textViewResourceId, resourceId); } public TextView getView(int position, View convertView, ViewGroup parent) { TextView v = (TextView) super .getView(position, convertView, parent); Typeface tf =Typeface.createFromAsset(getAssets(), "fonts/samplefont.ttf"); v.setTypeface(tf); v.setTextSize(30); return v; } public TextView getDropDownView(int position, View convertView, ViewGroup parent) { TextView v = (TextView) super .getView(position, convertView, parent); Typeface tf =Typeface.createFromAsset(getAssets(), "fonts/samplefont.ttf"); v.setTypeface(tf); v.setTextSize(30); return v; } }
有的时候你需要修改Adapter. 如果你的Adapter是通过对象数组构造的,那会有问题,因为系统会把你的对象数组转换成 长度不可变 的list. 当你在Adapter 里add insert时候,这个不可变数组就会发生异常.
相关文章推荐
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chrono
- Android Spinner控件,实现key(id)和Value的取值
- Android下拉列表控件spinner-andoid学习之旅(十一)
- Android Spinner控件 显示数据和下拉选中数据分离
- Android第四讲——常用的基本控件(二)ListView、GridView、Spinner、AutoCompleteListView、Gallery、ExpandableListView
- Android Spinner控件学习笔记
- Android UI系统控件进阶(二)—下拉列表控件Spinner,进度条ProgressBar,滑块控件SeekBar,评分控件RatingBar
- Android下拉控件(Spinner)的基础使用
- Android下拉框控件Spinner的使用
- Android:控件Spinner实现下拉列表及监听
- Android中Spinner控件的使用(十)
- android Spinner控件详解
- Android控件之Spinner
- Android Spinner控件之键值对用法
- android自学第四天 Spinner 和 AutoCompleteTextView 基本适配器控件的使用
- android控件--Spinner
- Android 控件之Spinner
- Android:控件Spinner实现下拉列表
- 一步一步学android之基本控件——Spinner组件
- Android Spinner 下拉菜单和AutoCompleteTextView 自动填充控件