RecyclerView的点击事件

来源:互联网 发布:淘宝达人怎么升级到v2 编辑:程序博客网 时间:2024/06/11 05:42

主Main acitivity

public class MainActivity extends AppCompatActivity {   //声明全局变量   RecyclerView recyclerView;     Adapter adapter;    private List<Bean.NewslistBean> list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化控件        recyclerView= (RecyclerView) findViewById(R.id.review);        //设置布局样式        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));        //初始化okHttp        OkHttpClient okHttpClient=new OkHttpClient();        //new Call        /*Request request = new Request.Builder().url("http://api.tianapi.com/meinv/?key=2a0024d1f7f558e09936f697580f1643&num=10").build();*/        Request request = new Request.Builder().url("http://api.tianapi.com/travel/?key=2a0024d1f7f558e09936f697580f1643&num=10 \n").build();        Call call = okHttpClient.newCall(request);        call.enqueue(new Callback() {            private Adapter a;            @Override            public void onFailure(Call call, IOException e) {            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String json = response.body().string();                Gson gson = new Gson();                Bean bean = gson.fromJson(json,Bean.class);                List<Bean.NewslistBean> list = bean.getNewslist();                adapter = new Adapter(MainActivity.this,list);                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        recyclerView.setAdapter(adapter);                    }                });            }        });    }}


创建一个Adapter类


public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private MainActivity mainActivity;    private List<Bean.NewslistBean> list;    private List<Integer> heightList;//装产出的随机数    public Adapter(MainActivity mainActivity, List<Bean.NewslistBean> list) {        this.mainActivity = mainActivity;        this.list = list;        heightList = new ArrayList<>();        for (int i = 0; i < list.size(); i++) {            int height = new Random().nextInt(200) + 100;//[100,300)的随机数            heightList.add(height);        }    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = View.inflate(mainActivity, R.layout.list_item, null);        RecViewHolder recViewHolder = new RecViewHolder(view);        return recViewHolder;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        RecViewHolder recViewHolder = (RecViewHolder) holder;        recViewHolder.textView.setText(list.get(position).getTitle());        Glide.with(mainActivity).load(list.get(position).getPicUrl()).into(recViewHolder.imageView);        //设置动态图片        ViewGroup.LayoutParams params = ((RecViewHolder) holder).imageView.getLayoutParams();        params.height=heightList.get(position);        ((RecViewHolder) holder).imageView.setLayoutParams(params);        holder.itemView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {               /* Toast.makeText(mainActivity,"我點擊了",Toast.LENGTH_SHORT).show();*/                Intent intent=new Intent(mainActivity,hhhh.class);                mainActivity.startActivity(intent);            }        });    }    @Override    public int getItemCount() {        return list != null ? list.size() : 0 ;    }    class RecViewHolder extends RecyclerView.ViewHolder{        ImageView imageView;        TextView textView;        public RecViewHolder(View itemView) {            super(itemView);            imageView = (ImageView) itemView.findViewById(R.id.img);            textView = (TextView) itemView.findViewById(R.id.tv);        }        }    }

创建一个Bean

public class Bean {    /**     * code : 200     * msg : success     * newslist : [{"ctime":"2016-03-06 14:11","title":"靓丽空姐","description":"华声美女","picUrl":"http://image.hnol.net/c/2015-12/16/13/201512161312194661-3356886.jpg","url":"http://bbs.voc.com.cn/mm/meinv-6919217-0-1.html"},{"ctime":"2016-03-06 14:11","title":"欧美明星LadyGag时尚性感杂志封面拍摄","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-151216104640252.jpg","url":"http://www.du114.com/a/oumeimeinv/76419.html"},{"ctime":"2016-03-06 14:11","title":"日本童颜女优大貫彩香青春活力人体艺术","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-15121614203OF.jpg","url":"http://www.du114.com/meinvtupian/rentiyishu/77440.html"},{"ctime":"2016-03-06 14:11","title":"日本气质女优伊藤みく性感泳装人体艺术","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-151216142055I6.jpg","url":"http://www.du114.com/meinvtupian/rentiyishu/77441.html"},{"ctime":"2016-03-06 14:11","title":"日本90后女优瀨尾秋子性感大尺度人体艺术","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-15121614201cG.jpg","url":"http://www.du114.com/meinvtupian/rentiyishu/77439.html"},{"ctime":"2016-03-06 14:11","title":"日本短发女优中川朋美性感大尺度内衣人体艺术","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-151216142001F0.jpg","url":"http://www.du114.com/meinvtupian/rentiyishu/77438.html"},{"ctime":"2016-03-06 14:11","title":"日本气质女优西田麻衣性感妖娆人体艺术","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-151216141941602.jpg","url":"http://www.du114.com/meinvtupian/rentiyishu/77437.html"},{"ctime":"2016-03-06 14:11","title":"小清新美女清纯甜美写真","description":"114美女","picUrl":"http://t2.du114.com/uploads/151216/10-151216141910259.jpg","url":"http://www.du114.com/a/meinvxz/70066.html"},{"ctime":"2016-03-06 14:11","title":"宝","description":"华声美女","picUrl":"http://image.hnol.net/c/2015-12/16/20/201512162035153651-1876615.jpg","url":"http://bbs.voc.com.cn/mm/meinv-6920370-0-1.html"},{"ctime":"2016-03-06 14:11","title":"☆成熟女人\u2026\u2026[胸部平平 简思恩 140p]\u2026\u2026第七百七十二辑","description":"华声美女","picUrl":"http://image.hnol.net/c/2015-12/16/19/201512161900305821-1559530.jpg","url":"http://bbs.voc.com.cn/mm/meinv-6920218-0-1.html"}]     */    private int code;    private String msg;    private List<NewslistBean> newslist;    public int getCode() {        return code;    }    public void setCode(int code) {        this.code = code;    }    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public List<NewslistBean> getNewslist() {        return newslist;    }    public void setNewslist(List<NewslistBean> newslist) {        this.newslist = newslist;    }    public static class NewslistBean {        /**         * ctime : 2016-03-06 14:11         * title : 靓丽空姐         * description : 华声美女         * picUrl : http://image.hnol.net/c/2015-12/16/13/201512161312194661-3356886.jpg         * url : http://bbs.voc.com.cn/mm/meinv-6919217-0-1.html         */        private String ctime;        private String title;        private String description;        private String picUrl;        private String url;        public String getCtime() {            return ctime;        }        public void setCtime(String ctime) {            this.ctime = ctime;        }        public String getTitle() {            return title;        }        public void setTitle(String title) {            this.title = title;        }        public String getDescription() {            return description;        }        public void setDescription(String description) {            this.description = description;        }        public String getPicUrl() {            return picUrl;        }        public void setPicUrl(String picUrl) {            this.picUrl = picUrl;        }        public String getUrl() {            return url;        }        public void setUrl(String url) {            this.url = url;        }    }}

最后创建一个跳转类就ok,因为代码简单我就不往上面传了


主main_activity布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="xiaojia.moniyuekao.MainActivity">    <android.support.v7.widget.RecyclerView        android:id="@+id/review"        android:layout_width="match_parent"        android:layout_height="match_parent">    </android.support.v7.widget.RecyclerView></RelativeLayout>

list_item布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"> <ImageView     android:id="@+id/img"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:scaleType="fitXY"     android:src="@mipmap/ic_launcher"/>    <TextView        android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="hh"        /></LinearLayout>


所有依赖

compile 'com.android.support:appcompat-v7:26.0.0-alpha1'compile 'com.android.support:mediarouter-v7:26.0.0-alpha1'compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'compile 'com.squareup.okio:okio:1.5.0'compile 'com.squareup.okhttp3:okhttp:3.2.0'compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'compile 'com.google.code.gson:gson:2.8.2'compile 'com.github.bumptech.glide:glide:3.7.0'compile 'com.android.support:design:26.0.0-alpha1'testCompile 'junit:junit:4.12'

网络权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


原创粉丝点击