Android自定义Spinner

来源:互联网 发布:java做网站 编辑:程序博客网 时间:2024/04/29 00:54

1.my_spinner.xml,注意这里的CheckedTextView id必须是@android:id/text1 

<?xml version="1.0" encoding="utf-8"?><CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@android:id/text1"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/spinnercontent_selector"    android:ellipsize="marquee"    android:gravity="center_vertical"    android:singleLine="true"    android:textSize="18dp"    android:textColor="#333333"/>

2.定义spinner_item.xml,这个是下拉列表的item样式 

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/spinnercontent_selector"    android:padding="15dp" >    <TextView        android:id="@+id/spinner_item_label"        android:layout_width="wrap_content"        android:layout_height="30dp"        android:layout_alignParentLeft="true"        android:layout_centerVertical="true"        android:text="12"        android:textColor="#333333"        android:textSize="18dp" />    <ImageView        android:id="@+id/icon"        android:layout_width="20dp"        android:layout_height="20dp"        android:layout_alignParentRight="true"        android:layout_centerVertical="true"        android:src="@drawable/spinner_select"        android:visibility="visible" /></RelativeLayout>


3.需要重写ArrayAdapter的getDropDownView(int position, View convertView, ViewGroup parent)方法。 

// 初始化控件kdNameSpinner = (Spinner) findViewById(R.id.spinnerKuaidi);// 建立数据源String[] mItems = getResources().getStringArray(R.array.spinnername);// 建立Adapter并且绑定数据源// 重写ArrayAdapter的getDropDownView()方法ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.my_spinner, mItems) {@Overridepublic View getDropDownView(int position, View convertView,ViewGroup parent) {if (convertView == null) {convertView = getLayoutInflater().inflate(R.layout.spinner_item_layout, parent, false);}TextView label = (TextView) convertView.findViewById(R.id.spinner_item_label);label.setText(getItem(position));ImageView icon = (ImageView) convertView.findViewById(R.id.icon);icon.setVisibility(kdNameSpinner.getSelectedItemPosition() == position ? View.VISIBLE: View.INVISIBLE);return convertView;}};// 绑定 Adapter到控件kdNameSpinner.setAdapter(adapter);



0 0
原创粉丝点击