android spinner(下拉选项卡)的使用
来源:互联网 发布:网络推销员好做吗 编辑:程序博客网 时间:2024/06/07 21:06
用法 1 :以资源方式,静态展示 Spinner 选项
1. 在资源文件 (strings.xml) 中,增加:
< string name = "spin_prompt" > 请选择城市 </ string >
< string-array name = "cities" >
< item > 北京 </ item >
< item > 上海 </ item >
< item > 南京 </ item >
2. 在布局文件 (main.xml) 中,增加:
< Spinner
android:id = "@+id/Spinner01"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:entries = "@array/cities"
android:prompt = "@string/spin_prompt"
/>
注意: android:prompt 必须要引用 strings.xml 中资源 ID ,而不能在这里直接用 raw text 。
运行结果:
点击Spinner右边的带倒三角的按钮,即出现各城市选项如下:
用法 2 :以代码方式,动态展示 Spinner 选项
1. 在资源文件 strings.xml 中,无需定义任何资源。
2. 在布局文件 (main.xml) 中, Spinner 的描述为:
< Spinner
android:id = "@+id/Spinner01"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
/>
3. 在 Activity 对应的代码中做相关修改,使之如下:
public class ControlSpinner extends Activity
{
private static final String tag = "ControlSpinner" ;
private static final String[] cities =
{ " 上海 " , " 北京 " , " 南京 " , " 哈尔滨 " , " 乌鲁木齐 " , " 符拉迪沃斯托克 " , " 圣弗朗西斯科 " };
private Spinner spinner ;
@Override
public void onCreate(Bundle savedInstanceState)
{
super .onCreate(savedInstanceState);
setContentView(R.layout. main );
ArrayAdapter<String> adapter = new ArrayAdapter<String>( this , android.R.layout. simple_spinner_item , cities );
adapter.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item );
spinner = (Spinner) this .findViewById(R.id. Spinner01 );
spinner .setAdapter(adapter);
spinner .setPrompt( " 请选择城市 : " );
}
… …
}
运行效果和用法 1 相同。
用法 4 :改变 Spinner 对象本身的大小,及其文字的大小和颜色
1. 在布局文件 (main.xml) 中,修改 Spinner 对象的描述如下:
< Spinner
android:id = "@+id/Spinner01"
android:layout_width = "160px"
android:layout_height = "40px"
/>
这使得 Spinner01 的宽度为 160 个像素,高度为 40 个像素。
2. 创建一个布局文件 spinnerLayout.xml ,使之如下:
<? xml version = "1.0" encoding = "utf-8" ?>
< TextView xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:textSize = "12sp"
android:textColor = "#FF8B1500"
android:gravity = "center"
/>
3. 在 Activity 对应的代码中做相关修改,使之如下:
public class ControlSpinner extends Activity
{
private Spinner spinner ;
@Override
public void onCreate(Bundle savedInstanceState)
{
super .onCreate(savedInstanceState);
setContentView(R.layout. main );
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource ( this ,
R.array. cities ,
R.layout. spinnerlayout ); // 改为 spinnerlayout
adapter.setDropDownViewResource(R.layout. spinnerlayout ); // 改为 spinnerlayout
spinner = (Spinner) this .findViewById(R.id. Spinner01 );
spinner .setAdapter(adapter);
spinner .setPrompt( " 请选择城市 : " );
}
… …
}
用法5:同时显示图片和文本
假定有澳大利亚、瑞士、中华人民共和国和美利坚合众国这4个国家,我们想把它们的国旗和它们的国名同时显示在Spinner中。
它们对应的国旗图片资源分别如下:
对应的图片文件名分别为: au.png, ch.png, cn.png 和 us.png 。
1. 首先把国旗图片拖入 res/drawable-mdpi 文件夹。系统会自动为我们在 R.java 中生成相应的 id 。情形如下:
public static final class drawable {
public static final int au=0x7f020000;
public static final int ch=0x7f020001;
public static final int cn=0x7f020002;
public static final int icon=0x7f020004; // 系统自带的 icon 图标
public static final int us=0x7f020005;
}
2. 在 strings.xml 中给出各个国家的国名。
< string name = "au" > 澳大利亚 </ string >
< string name = "ch" > 瑞士 </ string >
< string name = "cn" > 中华人民共和国 </ string >
< string name = "us" > 美利坚合众国 </ string >
保存后,系统也会自动为我们在 R.java 中生成相应的 id 。情形如下:
public static final class string {
public static final int app_name=0x7f040001; // 系统自带的 string
public static final int au=0x7f040002;
public static final int ch=0x7f040003;
public static final int cn=0x7f040004;
public static final int us=0x7f040006;
}
3. 假定在布局文件 (main.xml) 中, Spinner01 的属性如下:
< Spinner
android:id = "@+id/Spinner01"
android:layout_width = "300px"
android:layout_height = "48px"
/>
4. 在 Activity 对应的代码中做相关修改,使之如下:
public class ControlSpinner extends Activity{ private Spinner spinner ; // 国旗图片 ID 数组 private int [] drawableIDs = { R.drawable. au , R.drawable. ch , R.drawable. cn , R.drawable. us }; // 国名文字 ID 数组 private int [] nameIDs = { R.string. au , R.string. ch , R.string. cn , R.string. us }; // 自定义一个 Adapter ,要重写 getCount 、 getItem 、 getItemId 和 getView 方法。其中的 getView 方法最为重要。 // 当然也可以先独立定义一个 Adapter 类 private BaseAdapter customizedAdapter = new BaseAdapter() { public int getCount() { // TODO Auto-generated method stub return drawableIDs . length ; } public Object getItem( int position) { // TODO Auto-generated method stub return drawableIDs [position]; } public long getItemId( int position) { // TODO Auto-generated method stub return position; } public View getView( int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub // 先设定一个 LinearLayout 对象 ll LinearLayout ll = new LinearLayout(ControlSpinner. this ); // 使 ll 的 Orientation 为 HORIZONTAL ll.setOrientation(LinearLayout. HORIZONTAL ); // 在垂直方向居中 ll.setGravity(Gravity. CENTER_VERTICAL ); // 创建一个 ImageView 对象 ImageView iv = new ImageView(ControlSpinner. this ); // 指定对应 position 的 Image iv.setImageResource( drawableIDs [position]); // 设定 ImageView 对象 iv 的宽度为 100 像素,高度为 40 像素 iv.setLayoutParams( new ViewGroup.LayoutParams(100, 40)); // 将 iv 加入到 ll ll.addView(iv); // 创建一个 TextView 对象 TextView tv = new TextView(ControlSpinner. this ); // 指定对应 position 的 Text tv.setText( nameIDs [position]); // 设定文字大小 tv.setTextSize(14); // 设定文字颜色 tv.setTextColor(Color. BLUE ); // 将 tv 加入到 ll ll.addView(tv); return ll; } }; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. main ); spinner = (Spinner) this .findViewById(R.id. Spinner01 ); spinner .setAdapter( customizedAdapter ); spinner .setPrompt( " 请选择国家: " ); } … … }
运行结果如下:
- android spinner(下拉选项卡)的使用
- android中Spinner(下拉框) 自定义样式 可改变 下拉选项的高度
- Android精简小笔记(9):Spinner的用法(下拉选项控件):
- android入门-------案例九(下拉选择spinner的使用)
- Android教程(十)-- Spinner下拉框的使用
- Android 下拉框 Spinner 的使用(value, text)
- Android下拉控件(Spinner)的基础使用
- Android 之 下拉框(Spinner)的使用
- Android 之 下拉框(Spinner)的使用
- Android 之 下拉框(Spinner)的使用
- Android下拉框控件Spinner的使用
- Android 之 下拉框(Spinner)的使用
- Android 之 下拉框(Spinner)的使用
- Android下拉框控件Spinner的使用
- Android下拉框控件Spinner的使用
- Android 之 下拉框(Spinner)的使用
- android 之 Spinner 下拉菜单的使用
- Android 之 下拉框(Spinner)的使用
- ios字符串替换
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- android格式化手机号的功能
- Universal Serial Bus 软件结构
- Android Studio系列教程六--Gradle多渠道打包
- android spinner(下拉选项卡)的使用
- 协议(delegate)和类别(category)
- FPGA 练习
- How-to: write own Kafka Partitioner based on requirement
- 小知识点
- 获取手机信息
- 产生随机的数组
- POJ 1018(二分)
- Android 操作系统的内存回收机制