android – 创建适配器以填充Spinner对象

android – 创建适配器以填充Spinner对象,第1张

概述我有一个带有Spinner的 Android应用程序,并希望用我自己的对象动态填充它.对象确实已经作为List< T>存在. 对象的类型为Category: public class Category implements Serializable { private Long id; private String name; // constructors // 我有一个带有Spinner的 Android应用程序,并希望用我自己的对象动态填充它.对象确实已经作为List< T>存在.

对象的类型为category:

public class category implements Serializable {    private Long ID;    private String name;    // constructors    // getter & setter    // hashCode,equals    // toString}

我知道我必须写一个适配器.我怎么做?我试图找一些例子……没有运气.请指教.

解决方法 这是我5美分.我遇到了类似的问题.我正在使用SimpleCursorAdapter,它实现了SpinnerAdapter接口,但只到SDK版本11(AndroID 3.0)才到达.我打算将我的应用程序与SDK 8(AndroID 2.2)一起使用,因此我不得不将SimpleCursorAdapter替换为另一个或我自己的.真正的挑战者是我还为微调器使用了自定义XML布局,并在其中显示了光标的几个字段,即光标适配器.经过大量研究后,这是我的解决方案,而且信息并不容易.

以下是名为spin_layout.xml的微调器中使用的布局文件:

<?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" ><TextVIEw     androID:ID="@+ID/fIEld1"    androID:textcolor="#000"    androID:gravity="center"    androID:layout_wIDth="40dp"    androID:layout_height="wrap_content"    androID:textSize="24sp" /><TextVIEw     androID:ID="@+ID/fIEld2"    androID:textcolor="#000"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"     androID:textSize="24sp" /></linearLayout>

这是适配器实现SpinnerAdapter并扩展(使用作为小帮手)BaseAdapter.最初使用的Cursor被转换为List并在构造函数中传递,并与包含微调器的活动一起传递.

public class MyCursorAdapter extends BaseAdapter implements SpinnerAdapter{    private Activity activity;    private List<Buslines> List_bsl;     public MyCursorAdapter(Activity activity,List<Buslines> List_bsl){        this.activity = activity;        this.List_bsl = List_bsl;    }    public int getCount() {        return List_bsl.size();    }    public Object getItem(int position) {        return List_bsl.get(position);    }    public long getItemID(int position) {        return List_bsl.get(position).getID();    }    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    VIEw spinVIEw;    if( convertVIEw == null ){        LayoutInflater inflater = activity.getLayoutInflater();        spinVIEw = inflater.inflate(R.layout.spin_layout,null);    } else {         spinVIEw = convertVIEw;    }    TextVIEw t1 = (TextVIEw) spinVIEw.findVIEwByID(R.ID.fIEld1);    TextVIEw t2 = (TextVIEw) spinVIEw.findVIEwByID(R.ID.fIEld2);    t1.setText(String.valueOf(List_bsl.get(position).getline_Num()));    t2.setText(List_bsl.get(position).getname());    return spinVIEw;    }}

与您在Web上找到的其他解决方案不同,方法getItemID与数据库中的ID字段建立链接,就像SimpleCursorAdapter一样.该ID是onItemSelectedListener中onItemSelected(AdapterVIEw arg0,VIEw arg1,int position,long ID)中为spinner.setonItemSelectedListener传递的参数.方法getVIEw膨胀spin_layout.xml,标识布局中包含的两个视图并为它们赋值(如String!).

总结

以上是内存溢出为你收集整理的android – 创建适配器以填充Spinner对象全部内容,希望文章能够帮你解决android – 创建适配器以填充Spinner对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存