欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

学习Android自定义Spinner适配器

程序员文章站 2024-02-29 23:09:28
本文为大家分享android自定义spinner适配器的相关知识点,供大家参考,具体内容如下 一、大致效果 二.关键代码 在注释中讲重点吧。 (1)spinn...

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

一、大致效果

学习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适配器的全部内容,希望对大家的学习有所帮助。