这篇简单介绍下Android中下拉列表Spinner的用法,话不多说,先上图
布局文件中的spinner.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget28"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<!-- 文字一般用sp作为长度单位 -->
<TextView
android:id="@+id/TextView_Show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="可以开始选择所在城市了。"
android:textSize="25sp"/>
<Spinner
android:id="@+id/spinner_City"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
数据源arrays.xml(防止硬编码)如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="cities">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>深圳</item>
<item>杭州</item>
<item>成都</item>
<item>大连</item>
<item>南京</item>
</string-array>
</resources>
主程序中的SpinnerActivity.java如下
public class SpinnerActivity extends Activity {
//方式一 声明cities字符串数组,为Spinner的下拉列表预定义数据:
//方式一 private static final String[] cities={"北京","上海","广州","深圳","杭州","成都","大连","南京"};
private TextView text;
private Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner);
text=(TextView)findViewById(R.id.TextView_Show);
spinner=(Spinner)findViewById(R.id.spinner_City);
//实例化ArrayAdapter:
//方式一 ArrayAdapter<String> adapter =new ArrayAdapter<String>(
//方式一 this,
//方式一 android.R.layout.simple_spinner_item,
//方式一 cities);
ArrayAdapter<CharSequence> adapter =ArrayAdapter.createFromResource(
this,
R.array.cities,
android.R.layout.simple_spinner_item);
//String类型是CharSequence接口的实现
//构建适配器为ListView绑定数据
//设置Spinner的下拉列表显示样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将adapter添加到spinner中
spinner.setAdapter(adapter);
//设置Spinner的一些属性
spinner.setPrompt("请选择城市:");//prompt:提示
spinner.setSelection(0,true);
//添加Spinner事件监听
spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//方式一 text.setText("你所在的城市是:"+cities[arg2]);
//arg0是适配器视图对象,这里指下拉列表视图。AdapterView 是内容由适配器来决定的视图类,<?>是适配器里内容的类型。
//arg1是适配器视图里的被点击的对象(即被选中的那一项),arg2被选中项的位置,arg3选中项所在行的行ID号
text.setText("你所在的城市是:"+arg0.getItemAtPosition(arg2).toString());
//设置显示当前选择的项
arg0.setVisibility(View.VISIBLE);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
}
这里有个小技巧:自动导入所需包的快捷键shift+ctrl+o
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。