当前位置:首页 » 安卓系统 » androidsetadapter

androidsetadapter

发布时间: 2024-06-16 03:15:51

‘壹’ Android控件RecyclerView和ListView的异同

异同比较:

  • 相同点:都可以实现垂直方向的滚动列表效果;都需要使用适配器(Adapter)

  • 不同点:ListView只能实现垂直滚动列表,但RecyclerView还可以实现水平、多列、跨列等复杂的滚动列表;RecyclerView不但需要Adapter,还必须有LayoutManager,用法更复杂一些。

  • 总结:ListView能做到的,RecyclerView都能做到,反之则不行。RecyclerView用法比ListView复杂。

一般用法:

  • ListView用法

    ListView listView = (ListView) findViewById(R.id.list_view);
    listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()));

  • RecyclerView用法

    recyclerView = findView(R.id.id_recyclerview);

    //设置布局管理器

    recyclerView.setLayoutManager(layout);

    //设置adapter

    recyclerView.setAdapter(adapter) ;

    //设置Item增加、移除动画

    recyclerView.setItemAnimator(new DefaultItemAnimator());

    //添加分割线

    recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL_LIST));

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

所使用的工具:电脑

开发工具:eclipse for Android , Android Studio

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


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

java">publicclassManufacture{
privateStringname;

publicManufacture(Stringname){
super();
this.name=name;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}
}

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

{
privateList<Manufacture>mList;
privateContextcontext;
//创建有参构造,参数需要传入两个1.自定义类类型的List,上下文参数
publicMnufactureAdapter(List<Manufacture>mList,Contextcontext){
super();
this.mList=mList;
this.context=context;
}
//返回长度位所定义List的长度
@Override
publicintgetCount(){
returnmList.size();
}
//返回位置为自定义list当前位置
@Override
publicObjectgetItem(intposition){
returnmList.get(position)
;
}
//返回条目的ID
@Override
publiclonggetItemId(intposition){
returnposition;
}
//这里getView需方法需要重点说明和注意:
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
//创建一个LayoutInflater并传入上下文
LayoutInflaterlinflater=LayoutInflater.from(context);
//添加自定义item布局到convertView;(item内容和样式通过自定义方式实现)
convertView=linflater.inflate(R.layout.spinner_item_layout,null);
//初始化Item中控件
TextViewtextView=(TextView)convertView.findViewById(R.id.manufacture_list);
//设置控件显示内容
textView.setText(mList.get(position).getName());

returnconvertView;
}

}

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

//初始化布局文件中的spinner
SpinnermSpinner=(Spinner)findViewById(R.id.spinner1);
//初始化自定义的List,并往里面添加数据
List<Manufacture>manufacture=newArrayList<Manufacture>();
接着就是添加数据,在项目中我是添加的从网络上下载的数据解析之后进行添加的,具体的添加方式根据具体需要进行添加,我把自己的贴在下面供大家参考:
for(inti=0;i<list.size();i++){
//添加数据源
manufacture.add(newManufacture(list.get(i).getName()));
}
//实例化一个之前自定义的adapter并向里面添加数据
MnufactureAdaptermadapter=newMnufactureAdapter(manufacture,ProctManageActivity.this);
参数说明:第一个参数是添加数据源后的List,第二个是当前activity的上下文。
最后一步,向spinner里面添加数据源
mSpinner.setAdapter(madapter);

‘叁’ android透明区域点击穿透怎么实现

一个解决方法是,可以将这些耗时的操作放到recyclerview.setAdapter(adapter)之前运行,运行完后再将需要的参数传入Adapter里,此处重写一个adapter类继承Adapter就可以了。解决后运行,滑动恢复了流畅。。

‘肆’ android如何在adapter更新数据

data = new ArrayList<Info>(); //存放数据的列表,以后只更新它就可以了
adapter = new page_ListAdapter(this, data); //适配器,一个类,继承自BaseAdapter
listview.setAdapter(adapter); //列表视图上绑定适配器
以上几步就建立了数据与控件之间的关,以后更新data就可以了,界面会自动刷新。

附:适配器类在大体如下所示:
class page_ListAdapter extends BaseAdapter {
public page_ListAdapter(Activity context, List<Info> list) {
}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

//这里构建每一行的界面
}
}

热点内容
计算机和脚本语言的区别 发布:2024-06-25 14:14:24 浏览:139
命令连接ftp 发布:2024-06-25 14:11:52 浏览:49
excel导入数据库c 发布:2024-06-25 14:01:45 浏览:363
iisphp验证码不显示 发布:2024-06-25 13:33:12 浏览:86
电脑什么病毒会让电脑突然有密码 发布:2024-06-25 13:07:53 浏览:994
phpnow 发布:2024-06-25 13:07:14 浏览:556
c语言字符用什么 发布:2024-06-25 12:58:25 浏览:667
工银融e联的动态密码是什么 发布:2024-06-25 12:49:25 浏览:266
java程序100 发布:2024-06-25 12:47:58 浏览:673
linuxsvn目录 发布:2024-06-25 12:39:06 浏览:759