1.在布局文件中声明Spinner控件:
<Spinner android:id="@+id/Myspinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
2.在string.xml中声明一个数组:(这种方式数据是写死了的,不灵活)
<string-array name="spinner">
<item>金星</item>
<item>木星</item>
<item>水星</item>
<item>火星</item>
<item>土星</item>
<item>海王星</item>
<item>冥王星</item>
</string-array>
3.创建一个ArrayAdapter:
4.得到Spinner对象,并设置数据:
代码如下:
package com.example.spinner1;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class SpinnerActivity extends Activity
{
private Spinner spinner=null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
spinner=(Spinner)findViewById(R.id.Myspinner);
// List<String> list=new ArrayList<String>();
// list.add("hello");
// list.add("kitty");
//调用arrayAdapter的构造函数来创建对象
//第二个参数:每一个条目的样式
//第三个参数:textView控件的ID
//第四个参数:为每个列表提供的数值,可以为任何对象(会自动转)
//ArrayAdapter arrayAdapter=new ArrayAdapter(this, R.layout.spinner_style,R.id.textView,list);
//第一个参数:上下文对象
//第二个参数:调用了string.xml中定义的array数组
//第三个参数:设置spinner样式,这里引用的是android系统自带的样式,可以自定义
ArrayAdapter<CharSequence> arrayAdapter=ArrayAdapter.createFromResource(SpinnerActivity.this, R.array.spinner, android.R.layout.simple_spinner_item);
//设置spinner中条目的样式,这里引用的是android系统自带的样式
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(arrayAdapter);
spinner.setPrompt("测试");
spinner.setOnItemSelectedListener(new MyonItemClickListener());
}
//用来监听选择后的操作
class MyonItemClickListener implements OnItemSelectedListener
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3)
{
String selected=arg0.getSelectedItem().toString();
System.out.println(selected);
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
}
}
ArrayAdapter的另一种用法:
见如上代码注释掉的部分