android spinner动态添加数据,Android中给Spinner或ListView添加数据

Android中给Spinner或ListView添加数据

(2009-07-17 14:30:52)

标签:

android

listview

it

先看ListView的api文档的说明

A view that shows items in a vertically scrolling list. The items

come from the ListAdapter associated with this view.

ListView是一个垂直显示选项的滚动列表,它的数据来自ListAdapter。注意它是可以多选,多显示的。

再看Spinner的说明

A view that displays one child at a time and lets the user pick

among them. The items in the Spinner come from the Adapter

associated with this view.

Spinner只显示并只能选择一个选项的,它的数据来自Adapter。

就是说两者都要通过Adapter来获得数据并显出来。做法都差不多,看如下的代码,可以生成一个下拉框。

public class Select extends Spinner {

ArrayAdapter arr; // 存放数据的数组Adapter,是impl自Adapter的一种

public Select(Context context) {

super(context);

// TODO Auto-generated constructor stub

String[] strs = new String[] {

context.getString(R.string.easy),

context.getString(R.string.normal),

context.getString(R.string.hard) };

// 如果Spinner,ListView中放的内容 是TextView的,必须在res\layout中添加一个xml,

// 且该xml中的内容只能是TextView的xml,以该xml中的TextView做模生成item

arr = new ArrayAdapter(context, R.layout.list_item, strs);

this.setAdapter( arr );

// 通过这样,可以在Spinner中显示3个TextView类型的选项。

}

}

list_item.xml, 该xml中的textView将作为模板使用,可以在这里指定文字的颜色,大小等。

encoding="UTF-8"?>

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android ListView 添加 Spinner,可以使用自定义的 ListAdapter 来实现。 首先,创建一个自定义的 ListAdapter,继承 BaseAdapter,重写其方法,包括 getCount()、getItem()、getItemId() 和 getView() 方法。 在 getView() 方法,使用布局文件定义每个列表项的布局,并将 Spinner 设置到布局的某个位置。然后,在 Spinner 的适配器填充 Spinner 选项,并设置 Spinner 的选择事件监听器,以便在选择项时更新 Spinner 的值。 以下是一个示例代码: ```java public class MyListAdapter extends BaseAdapter { private List<MyObject> mObjects; public MyListAdapter(List<MyObject> objects) { mObjects = objects; } @Override public int getCount() { return mObjects.size(); } @Override public Object getItem(int position) { return mObjects.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 加载布局文件 View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false); // 获取对象 MyObject object = mObjects.get(position); // 设置显示文本 TextView textView = view.findViewById(R.id.text_view); textView.setText(object.getName()); // 设置 Spinner Spinner spinner = view.findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<>(parent.getContext(), android.R.layout.simple_spinner_item, object.getOptions()); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // 更新对象的值 object.setSelectedOption(adapter.getItem(position)); } @Override public void onNothingSelected(AdapterView<?> parent) { // Do nothing } }); // 设置 Spinner 的选spinner.setSelection(object.getSelectedOptionIndex()); return view; } } ``` 在这个示例代码,我们创建了一个自定义的 ListAdapter,其每个列表项包含一个 TextView 和一个 Spinner。在 getView() 方法,我们加载了布局文件 R.layout.list_item,然后将对象的名称设置到 TextView 。接着,我们为 Spinner 设置了适配器,并在 Spinner 的选择事件监听器更新了对象的值。最后,我们设置了 Spinner 的选项,以便在列表项正确显示 Spinner 的值。 注意,这个示例代码仅仅是给出了一个思路,具体实现可能因为你的需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值