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>




 


原文地址:https://www.cnblogs.com/krislight1105/p/3748365.html