android 里怎么用adapter写下拉菜单选择

 我来答
黑马程序员
2016-09-23 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部

所使用的工具:电脑

开发工具:eclipse for  Android , Android  Studio

用adapter 写下拉菜单需要我们自己进行自定义,具体步骤如下:


1、自定义类,类成员与需要显示的字段一致;

public class Manufacture {
private String name ;

public Manufacture(String name) {
super();
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

2、自定义adapter并继承自BaseAdapter实现相应方法,下面是贴出的代码示例:

public class MnufactureAdapter extends BaseAdapter{
private List<Manufacture> mList;
private Context context ;
//创建有参构造,参数需要传入两个1.自定义类类型的List,上下文参数
public MnufactureAdapter(List<Manufacture> mList, Context context) {
super();
this.mList = mList;
this.context = context;
}
//返回长度位所定义List的长度
@Override
public int getCount() {
return mList.size();
}
//返回位置为自定义list当前位置
@Override
public Object getItem(int position) {
return mList.get(position)
;
}
//返回条目的ID
@Override
public long getItemId(int position) {
return position;
}
//这里getView需方法需要重点说明和注意:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//创建一个LayoutInflater并传入上下文
LayoutInflater linflater = LayoutInflater.from(context);
//添加自定义item布局到convertView;(item内容和样式通过自定义方式实现)
convertView = linflater.inflate(R.layout.spinner_item_layout, null);
//初始化Item中控件
TextView textView =(TextView) convertView.findViewById(R.id.manufacture_list);
//设置控件显示内容
textView.setText(mList.get(position).getName());

return convertView;
}

}

3、在activity中需要添加如下代码:

//初始化布局文件中的spinner
 Spinner  mSpinner = (Spinner) findViewById(R.id.spinner1);
//初始化自定义的List,并往里面添加数据
List<Manufacture>  manufacture = new ArrayList<Manufacture>();
接着就是添加数据,在项目中我是添加的从网络上下载的数据解析之后进行添加的,具体的添加方式根据具体需要进行添加,我把自己的贴在下面供大家参考:
for(int i = 0;i<list.size();i++){
//添加数据源
manufacture.add(new Manufacture(list.get(i).getName()));
}
//实例化一个之前自定义的adapter并向里面添加数据
MnufactureAdapter madapter = new MnufactureAdapter(manufacture, ProductManageActivity.this);
参数说明:第一个参数是添加数据源后的List,第二个是当前activity的上下文。
最后一步,向spinner里面添加数据源
mSpinner.setAdapter(madapter);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式