Spinner的功能与用法
Spinner的常用属性
xml属性 | 说明 |
android:entries | 使用数组资源设置该下拉列表框的列表项目 |
android:prompt | 设置该列表选择框的提示 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 定义了一个Spinner组件, 指定该显示该Spinner组件的数组 --> <Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="" android:entries="@array/books" /> </LinearLayout>
res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="books"> <item>疯狂Java讲义</item> <item>疯狂Ajax讲义</item> <item>疯狂XML讲义</item> </string-array> </resources>
package org.crazyit.spinner; import android.app.Activity; import android.os.Bundle; public class SpinnerTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
不同存错列表项的Spinner
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择您最喜欢的数字:" /> <Spinner android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
package org.crazyit.spinner; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TableLayout; import android.widget.TextView; public class SpinnerTest2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); BaseAdapter ba = new BaseAdapter() { @Override public int getCount() { //指定一共包含10个选项 return 10; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } // //法1:重写该方法,该方法返回的View将作为列表框的每项 // @Override // public View getView(int position, View convertView, ViewGroup parent) // { // TextView text = new TextView(SpinnerTest2.this); // text.setText(position""); // text.setTextSize(20); // text.setTextColor(R.color.red); // return text; // } //法2:重写该方法,该方法返回的View将作为列表框的每项 @Override public View getView(int position, View convertView, ViewGroup parent) { //创建一个LinearLayout,并向其中添加2个组件 LinearLayout line = new LinearLayout(SpinnerTest2.this); line.setOrientation(0); ImageView image = new ImageView(SpinnerTest2.this); image.setImageResource(R.drawable.icon); TextView text = new TextView(SpinnerTest2.this); text.setText(position + ""); text.setTextSize(20); text.setTextColor(R.color.red); line.addView(image); line.addView(text); //返回LinearLayout实例 return line; } }; Spinner spinner = (Spinner)findViewById(R.id.test); spinner.setAdapter(ba); } }