在Web开发中,HTML提供了下拉列表的实现,就是使用<select>元素实现一个下拉列表,在其中每个下拉列表项使用<option>表示即可。这是在Web开发中一个必不可少的交互性组件,而在Android中的对应实现就是Spinner。
在string.xml定义数组ctys
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Android_005_Spinner</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string-array name="Citys">
<item >北京</item>
<item >上海</item>
<item >广州</item>
<item >深圳</item>
<item >南京</item>
</string-array>
</resources>
下面是布局文件其中
spinner1为静态
spinner2为动态
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android_005_spinner.MainActivity" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/Citys" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/spinner1"
android:layout_below="@+id/spinner1"
/>
</RelativeLayout>
这是一个实现类
public class MainActivity extends Activity implements OnItemSelectedListener{
private Spinner sp2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp2=(Spinner)findViewById(R.id.spinner2);
/*
//直接创建数组方式
data_list = new ArrayList<String>();
data_list.add("北京");
data_list.add("上海");
data_list.add("广州");
data_list.add("深圳");
*/
//获取XML文件中的数组
String[] ctys=getResources().getStringArray(R.array.Citys);
//创建数组适配器
//ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ctys);
//参数 (上下文 ,数据,布局)
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.Citys, android.R.layout.simple_spinner_item);
//设置样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//加载适配器
sp2.setAdapter(adapter);
sp2.setOnItemSelectedListener(this);
}
//单击的事件
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
System.out.println(parent.getClass());
System.out.println(view.getClass());
Toast.makeText(this,sp2.getSelectedItem().toString() , Toast.LENGTH_LONG).show();
}
看看运行的效果图吧