android Spinner自定义下拉框

android 专栏收录该内容
15 篇文章 0 订阅

Spinner下拉框在android中有2种绑定方式

1.通过在string.xml中配置 array 的item 去实现(缺点:下拉框中的内容是写死的)

<array name="city">
        <item>北京</item>
        <item>上海</item>
        <item>广州</item>
        <item>深圳</item>
    </array>
在布局文件中引用后可以看到效果

<Spinner
        android:id="@+id/tab1_fragemt_spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/city">
    </Spinner>

2.自定义数据源,获取网络数据显示到下拉框中

a.新增一个布局文件 spinner_custom_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        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" />
</LinearLayout>
b.自定义一个适配器类

/**
     * 自定义适配器类
     * @author jiangqq  <a href=http://blog.csdn.net/jiangqq781931404></a>
     *
     */
    public class MyAdapter extends BaseAdapter {
        private List<String> mList; //List 中的 String  可以是对象,随意组合,此处演示用的是 Stirng 
        private Context mContext;

        public MyAdapter(Context pContext, List<String> 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<String> items = new ArrayList<String>();
items.add("管理员");
items.add("会员");
items.add("游客");
MyAdapter adapter = new MyAdapter(context,items);
spinner.setAdapter(adapter);

下拉框显示的样式可以自己调整,好处多多



  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值