android spinner保存对象,android – 创建适配器以填充Spinner对象

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

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

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/field1"

android:textColor="#000"

android:gravity="center"

android:layout_width="40dp"

android:layout_height="wrap_content"

android:textSize="24sp" />

android:id="@+id/field2"

android:textColor="#000"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="24sp" />

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

public class MyCursorAdapter extends BaseAdapter implements SpinnerAdapter{

private Activity activity;

private List list_bsl;

public MyCursorAdapter(Activity activity,List 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!).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值