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();        }    }}


原创粉丝点击