RecycleView适配器 Persener层
来源:互联网 发布:爱奇艺视频转换器mac版 编辑:程序博客网 时间:2024/06/05 23:07
package com.example.app.Adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.bumptech.glide.Glide;import com.example.app.Bean.Jiugg;import com.example.app.Bean.Shop_bean;import com.example.app.R;import java.util.List;//适配器public class JiuggRecycleAdapter extends RecyclerView.Adapter<JiuggRecycleAdapter.ViewHolder>{ private Context context; private List<Shop_bean> list; public JiuggRecycleAdapter(Context context, List<Shop_bean> list) { this.context = context; this.list = list; } class ViewHolder extends RecyclerView.ViewHolder{ private final ImageView img1; private final TextView tv1; public ViewHolder(View itemView) { super(itemView); img1=(ImageView)itemView.findViewById(R.id.img1); tv1 =(TextView)itemView.findViewById(R.id.tv1); } } @Override public JiuggRecycleAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.jiugg_fragment1, null); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(JiuggRecycleAdapter.ViewHolder holder, int position) { Glide.with(context).load(list.get(position).getImg()).into(holder.img1); holder.tv1.setText(list.get(position).getName()); } @Override public int getItemCount() { return list.size(); }}
// 线性布局管理器,第二个参数默认是LinearLayoutManager.VERTICAL,第三个参数默认是false// LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);// LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true); // 网格布局// GridLayoutManager manager = new GridLayoutManager(this, 2); // 瀑布流 StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, LinearLayoutManager.VERTICAL); rvData.setLayoutManager(manager); adapter = new RecyclerDataAdapter(this, imgDatas); rvData.setAdapter(adapter);
//p层
package com.example.moniyk.perseners;import com.example.moniyk.bean.BeanImg;import com.example.moniyk.httputils.HttpUtils;import com.example.moniyk.jiekou.CallBack;import com.example.moniyk.jiekou.Iview;import java.util.HashMap;import java.util.List;import java.util.Map;public class Persener { private Iview inv; private List<BeanImg.ResultBean.RowsBean> list; public void attach(Iview inv) { this.inv = inv; } public void get(Map<String,String> map){ HttpUtils.getInstance().get("http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0&qtime=20160411091603", map, new CallBack() { @Override public void onSuccess(Object message) { BeanImg bean=(BeanImg)message; BeanImg.ResultBean result = bean.getResult(); list = result.getRows(); inv.success(list); } @Override public void onFailed(Exception error) { inv.failed(error); } }, BeanImg.class); } //解决内存泄漏问题 public void deleteView(){ if(inv!=null){ inv=null; } }}
//MainActivity内存泄漏
//内存泄漏@Overrideprotected void onDestroy() { super.onDestroy(); if (persener!=null){ persener.deleteView(); }}//掉HashMap<String, String> map = new HashMap<>();persenerG.get(map);//MainActivity中获取p层的对象package com.example.moniyk;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import android.util.Log;import android.view.View;import android.widget.ImageView;import com.example.moniyk.adapter.Adapter;import com.example.moniyk.bean.BeanImg;import com.example.moniyk.bean.Img;import com.example.moniyk.jiekou.Iview;import com.example.moniyk.perseners.Persener;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class MainActivity extends AppCompatActivity{ private RecyclerView rv; private Persener persener; private Adapter Adapter; private ArrayList<Img> list = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv =(RecyclerView)findViewById(R.id.rv); //p层 persener = new Persener(); persener.attach(new Iview() { @Override public void success(List<BeanImg.ResultBean.RowsBean> message) { for (int i = 0; i < message.size(); i++) { BeanImg.ResultBean.RowsBean.InfoBean info = message.get(i).getInfo(); List<BeanImg.ResultBean.RowsBean.InfoBean.ActivityBean> activity = info.getActivity(); for (int j = 0; j < activity.size(); j++) { BeanImg.ResultBean.RowsBean.InfoBean.ActivityBean activityBean = activity.get(j); String icon = activityBean.getIcon(); list.add(new Img(icon)); } } Adapter = new Adapter(MainActivity.this, list); rv.setAdapter(Adapter); //点击跳转到购物车 Adapter.setRecycleOnClickListener(new Adapter.OnClickitemListener() { @Override public void onItemclick(View view, int postion) { Intent intent = new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); } @Override public void failed(Exception message) { } }); persener.get(new HashMap<String, String>()); StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, LinearLayoutManager.VERTICAL); rv.setLayoutManager(manager); } //内存泄漏 @Override protected void onDestroy() { super.onDestroy(); if (persener!=null){ persener.deleteView(); } }}
阅读全文
0 0
- RecycleView适配器 Persener层
- recycleview适配器
- 万能RecycleView适配器
- RecycleView适配器的封装
- 打造RecycleView 通用适配器
- RecycleView的适配器
- Recycleview的使用以及编写Recycleview适配器的框架-BaseRecyclerViewAdapterHelper
- 可以添加多个头视图、尾视图的RecycleView适配器
- 写RecycleView适配器时,发现inflate的问题
- RecycleView适配器及多条目及点击事件
- recycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- recycleview
- 找工作篇
- springMvc视图化,国际化,静态资源处理
- 顺序表的实现
- caffe源码阅读之layer(2)——DataLayer层(2)
- LWIP 实现DHCP及DNS功能
- RecycleView适配器 Persener层
- eclipse查看一个方法被谁引用的快捷键
- 【练习】学生成绩管理系统
- Windows下安装MySql的图文详解
- JavaScript (二)我的第一个JavaScript程序
- webpack+vue+elementui构建后台管理系统
- Maven工程远程部署Tomcat配置
- Linux中模拟shell实现mybash
- MVC三层架构