所使用的工具:电脑
开发工具: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中需要添加如下代码:
//初始化布局文件中的spinnerSpinner mSpinner = (Spinner) findViewById(R.id.spinner1)
//初始化自定义的List,并往里面添加数据
List<Manufacture> manufacture = new ArrayList<Manufacture>()
接着就是添加数据,在项目中我是添加的从网络上下载的数据解析之后进行添加的,具体的添加方式根据具体需要进行添加,我把自己的贴在下面供大家参考:
for(int i = 0i<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)
Android的下拉列表是用Spinner 这个类来实现的。Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现),使用ArrayAdapter进行适配数据:
1:首先定义一个布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
2:建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="spinnername">
<item>北京</item>
<item>上海 </item>
<item>广州</item>
<item>深圳</item>
</string-array>
</resources>
3:接着在Activity中加入如下的代码(使用了系统定义的下拉列表的布局文件,当然也可以自定义)
// 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1)
// 建立数据源
String[] mItems = getResources().getStringArray(R.array.spinnername)
// 建立Adapter并且绑定数据源
ArrayAdapter<String>_Adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems)
//绑定 Adapter到控件
mSpinner.setAdapter(_Adapter)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)