当前位置: 移动技术网 > IT编程>移动开发>Android > 学习Android自定义Spinner适配器

学习Android自定义Spinner适配器

2019年07月24日  | 移动技术网IT编程  | 我要评论

花千骨中朔风是什么人,rescueme,阶下囚by凌豹姿

本文为大家分享android自定义spinner适配器的相关知识点,供大家参考,具体内容如下

一、大致效果

二.关键代码

在注释中讲重点吧。
(1)spinner的布局: car_brand_spinner.xml
即为弹出来的下拉列表的布局啦,后面的那个布局就不拿出来丢人现眼了,反正知道有一个spinner的id为carbrandspinner就可以了。

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:orientation="horizontal">

  <relativelayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp">

    <textview
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="new text"
      android:id="@+id/car_brand_name"
      android:layout_gravity="left"
      android:layout_alignparentleft="true"
      android:layout_margintop="5dp"
      android:layout_marginbottom="5dp" />

    <imageview
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/car_brand_flag"
      android:layout_gravity="right"
      android:layout_alignparentright="true" />
  </relativelayout>
</linearlayout>

(2)适配器

arrayadapter carbrandadapter=new arrayadapter<string>
(
  addcaractivity.this,
  android.r.layout.simple_spinner_dropdown_item,
  carbrandnamelist//是string[],就是所有要显示的brandname
){
  @override
  public view getdropdownview(int position, view convertview, viewgroup parent) {
  convertview = view.inflate(addcaractivity.this,r.layout.car_brand_spinner,null);//获得spinner布局view
  if(convertview!=null)
  {
    textview carbrandnameview = (textview)convertview.findviewbyid(r.id.car_brand_name);
    imageview carbrandflagview = (imageview)convertview.findviewbyid(r.id.car_brand_flag);
    try
    {
      jsonobject json = new jsonobject(carbrandlist.get(position).get("carbrand").tostring());
      carbrandnameview.settext(json.getstring("carbrandname"));//设置数据,我这里的数据是从服务器读出来的,所以前面有一个转化取值的过程
      }catch (exception e){}
      bitmap bitmap =common.string2bitmap(carbrandlist.get(position).get("carbrandflagcontent").tostring());//这里也一样,图片数据来自于服务器,同时有一个将数据从string转bitmap的过程
      if(bitmap!=null)
      carbrandflagview.setimagebitmap(bitmap);//显示图片
      }
      return convertview;
      }
};
//给spinner set适配器
spinner carbrandspinner=(spinner)findviewbyid(r.id.carbrandspinner);
carbrandspinner.setadapter(carbrandadapter);
carbrandspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener()
{
   @override//重写item被选择的事件
   public void onitemselected(adapterview<?> parent, view view, int position, long id) {}
   @override
   public void onnothingselected(adapterview<?> parent) {}
});

到此结束!

以上就是关于android spinner适配器的全部内容,希望对大家的学习有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网