题目
使用 ArrayAdapter 的方式实现一个城市的下拉列表。
答案
activity_main.xml
。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp"
>
<TextView
android:layout_width="182dp"
android:layout_height="37dp"
android:text="城市"
android:textSize="25dp"/>
<Spinner
android:id="@+id/spinner1"
android:layout_width="182dp"
android:layout_height="64dp"
/>
</LinearLayout>
city.xml
。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="spinnername">
<item>北京</item>
<item>上海</item>
<item>武汉</item>
<item>南京</item>
<item>南昌</item>
<item>深圳</item>
<item>长沙</item>
<item>广州</item>
<item>昆明</item>
<item>贵阳</item>
<item>哈尔滨</item>
<item>吉林</item>
<item>苏州</item>
<item>杭州</item>
<item>南阳</item>
<item>石家庄</item>
<item>济南</item>
<item>银川</item>
<item>呼和浩特</item>
<item>西安</item>
<item>合肥</item>
<item>郑州</item>
<item>青岛</item>
<item>台北</item>
<item>兰州</item>
<item>太原</item>
<item>乌鲁木齐</item>
<item>海口</item>
<item>沈阳</item>
<item>福州</item>
<item>南宁</item>
<item>成都</item>
<item>长春</item>
<item>拉萨</item>
<item>西宁</item>
</string-array>
</resources>
MainActivity.java
。
package com.example.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner=(Spinner)findViewById(R.id.spinner1);//初始化控件
String[]city=getResources().getStringArray(R.array.spinnername);//建立数据源
ArrayAdapter<String>adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,city);//建立Adapter并且绑定数据源
//第一个参数表示在哪个Activity上显示,第二个参数是系统下拉框的样式,第三个参数是数组。
spinner.setAdapter(adapter);//绑定Adapter到控件
}
}
运行结果