如果想获得Spinner选择 的名称,用 String数组中 的[arg2]就行了。这个刚开始没想到。整理了好长时间才转过来怎样获得 Spinner 选择后的名称
点击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 adapter = new ArrayAdapter( this , android.R.layout. simple_spinner_item , cities ); // ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item); // adapter.add(" 上海 ");
// adapter.add(" 北京 ");
// adapter.add(" 南京 ");
// adapter.add(" 哈尔滨 ");
// adapter.add(" 乌鲁木齐 ");
// adapter.add(" 符拉迪沃斯托克 ");
// adapter.add(" 圣弗朗西斯科 ");
adapter.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item ); spinner = (Spinner) this .findViewById(R.id. Spinner01 );
spinner .setAdapter(adapter);
spinner .setPrompt( " 请选择城市 : " );
}
… …
}
运行效果和用法 1 相同。
注意:
1. 被注释的代码可以代替
private static final String[] cities = { " 上海 " , " 北京 " , " 南京 " , " 哈尔滨 " , " 乌鲁木齐 " , " 符拉迪沃斯托克 " , " 圣弗朗西斯科 " }; 和
ArrayAdapter adapter = new ArrayAdapter( this , android.R.layout. simple_spinner_item , cities ); 两条语句的组合。
2. ArrayAdapter 构造函数中的第二个参数是 android.R.layout. simple_spinner_item , adapter.setDropDownViewResource 中的参数则是 android.R.layout. simple_spinner_dropdown_item 。它们是不一样的。
用法 3 :混合方式
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 Spinner spinner ;
@Override
public void onCreate(Bundle savedInstanceState)
{
super .onCreate(savedInstanceState);
setContentView(R.layout. main );
ArrayAdapter adapter = ArrayAdapter.createFromResource ( this ,
R.array. cities ,
android.R.layout. simple_spinner_item );
adapter.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item ); spinner = (Spinner) this .findViewById(R.id. Spinner01 );
spinner .setAdapter(adapter);
spinner .setPrompt( " 请选择城市: " );
}
… …
}
运行效果与方法 1 也一样。
注意:
1. ArrayAdapter adapter 中的模板参数必须为 CharSequence
2. createFromResource 的第二个参数 R.array.cities 就是在 strings.xml 中定义的资源
用法 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 ,使之如下: