第一种方法:
使用Spinner时需要配置选项的资源文件,资源文件为一个string类型的数组
在res下的values文件夹下新建一个xml文件
内容为:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="book"> <item>《java开发实战经典》</item> <item>《J2EE轻量级框架》</item> <item>《平凡的世界》</item> <item>《西方哲学简史》</item> <item>《白鹿原》</item> <item>《人性的弱点》</item> </string-array> </resources>
界面显示文件配置为:
使用Spinner时需要配置选项的资源文件,资源文件为一个string类型的数组 在res下的values文件夹下新建一个xml文件 内容为: <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="book"> <item>《java开发实战经典》</item> <item>《J2EE轻量级框架》</item> <item>《平凡的世界》</item> <item>《西方哲学简史》</item> <item>《白鹿原》</item> <item>《人性的弱点》</item> </string-array> </resources> 界面显示文件配置为: <?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" > <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/book" ————>引入资源文件 android:prompt="@string/tishi" ——配置下拉列表的提示语,不可以直接写字符串,必须从资源文件中引入字符串 /> </LinearLayout>
第二种方法:
values中的string.xml文件如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, SpinnerActivity!</string> <string name="app_name">Spinner</string> <string name="tishi">请选择你喜欢的书籍</string> </resources>
在程序中配置下拉列表中的信息,并设置下拉列表的现实风格
arrayadapter用来解析数据
程序代码如下:
public class SpinnerActivity extends Activity { Spinner spinner; ArrayAdapter<CharSequence> arrayadapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); arrayadapter=ArrayAdapter.createFromResource(this, R.array.book,android.R.layout.simple_spinner_item); spinner=(Spinner)findViewById(R.id.spinner2); arrayadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);-->设置下拉列表的显示风格 spinner.setAdapter(arrayadapter); ————>将arrayadapter配置给Spinner } }
第三种方法:
在Spinner中自定义Adapter,定义一个类继承BaseAdapter,实现父类的方法
public class MyAdapter extends BaseAdapter { private Context mycontext; public MyAdapter(Context context){ this.mycontext=context; } public int getCount() { //返回该Adapter中view的个数,不写默认为为零 // TODO Auto-generated method stub return 10; } public Object getItem(int position) { // TODO Auto-generated method stub return null; } public long getItemId(int position) { // TODO Auto-generated method stub return 0; } public View getView(int position, View convertView, ViewGroup parent) { //返回自定义的view TextView tv=new TextView(mycontext); tv.setText("aaa"+position); return tv; } }
Activity中的实现代码
public class SpinnerActivity extends Activity { Spinner spinner; ArrayAdapter<CharSequence> arrayadapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); spinner=(Spinner)findViewById(R.id.spinner2); MyAdapter myadapter=new MyAdapter(SpinnerActivity.this); spinner.setAdapter(myadapter); } }