android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧。Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。Spinner是View类得一个子类。
第一种静态设置spinner列表的内容----将列表显示的内容写在xml文件中参考 spinner ApI 说明
首先在layout.xml中声明spinner控件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- >
- <TextView android:id="@+id/spinnerText"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"></TextView>
- <Spinner android:id="@+id/Spinner01"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"></Spinner>
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TestSpinner</string>
<string name="action_settings">Settings</string>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
在activity中编写代码
package com.example.testspinner;
/*
* 静态设置spinner 在string.xml中设置spinner中的选项
*
* */
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends Activity {
private Spinner spinner = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner=(Spinner)findViewById(R.id.spinner);
//使用createFromResource创建一个 ArrayAdapter对象
//第一个参数 时 adapter所在的对象
//第二个参数是 存放在string.xml中的 string数组
//第三个为layout布局文件,这里用的黑丝系统默认的layout文件,可以使用自己定义的布局文件
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource
(this, R.array.planets_array, android.R.layout.simple_spinner_item);
//设置spinner中的每一个item的样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);//设置适配器
spinner.setPrompt("TestSpinner");//设置spinner的名称
//添加侦听
spinner.setOnItemSelectedListener(new spinnerOnItemClick());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class spinnerOnItemClick implements OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String selectedString=parent.getSelectedItem().toString();//将选择的按钮转换为字符类型
System.out.println("selected item is ---->"+selectedString);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
System.out.println("nothing is selected");
}
}
}