Android用户界面UI组件--AdapterView及其子类(五) Spinner和SpinnerAdapter
Spinner就是下拉框组件,可以自定义下拉布局样式,可以使用ArrayAdapter以及SpinnerAdapter适配
在Adapter中实现SpinnerAdapter,继承BaseAdapter类
private class ListAdapter extends BaseAdapter implements SpinnerAdapter {
@Override
public int getCount() {
return allLists.size();
}
@Override
public Object getItem(int position) {
return allLists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
TextView text = new TextView(lexs);
text.setText(allLists.get(position).getName());
return text;
}
}
然后它不需要重写所有的像isEmpty(), registerDataObserver()这样的方法,但是可以重写getDropDownView(...)方法.
例子:
<?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:entries="@array/sanguo" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sanguo"> <item>魏</item> <item>蜀</item> <item>吳</item> </string-array> </resources>