Spinner下拉框在android中有2种绑定方式
1.通过在string.xml中配置 array 的item 去实现(缺点:下拉框中的内容是写死的)
北京
上海
广州
深圳
在布局文件中引用后可以看到效果
android:id="@+id/tab1_fragemt_spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/city">
2.自定义数据源,获取网络数据显示到下拉框中
a.新增一个布局文件 spinner_custom_item.xml
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/spinner_custom_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingTop="10dip"
android:paddingRight="10dip"
android:text="TextView"
android:textColor="#444444"
android:textSize="20sp" />
b.自定义一个适配器类/**
* 自定义适配器类
*
*/
public class MyAdapter extends BaseAdapter {
private List mList; //List 中的 String 可以是对象,随意组合,此处演示用的是 Stirng
private Context mContext;
public MyAdapter(Context pContext, List pList) {
this.mContext = pContext;
this.mList = pList;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
/**
* 下面是重要代码
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater _LayoutInflater=LayoutInflater.from(mContext);
convertView=_LayoutInflater.inflate(R.layout.spinner_custom_item, null);
if(convertView!=null)
{
TextView _TextView1=(TextView)convertView.findViewById(R.id.spinner_custom_textView);
_TextView1.setText(mList.get(position));
}
return convertView;
}
}
c.在activity方法中把数据放到适配器中就可以看到效果
Spinner spinner = (Spinner) findViewById(R.id.tab1_fragemt_spinner2);
List items = new ArrayList();
items.add("管理员");
items.add("会员");
items.add("游客");
MyAdapter adapter = new MyAdapter(context,items);
spinner.setAdapter(adapter);
下拉框显示的样式可以自己调整,好处多多