Git(分布式版本控制系统)

来源:互联网 发布:学java就业好么 编辑:程序博客网 时间:2024/06/05 21:16

这只是一个练习案例

首先,需要导入的依赖有:

    compile 'com.jakewharton:butterknife:8.8.1'
    compile 'com.jakewharton:butterknife-compiler:8.8.1'
    compile 'com.squareup.retrofit2:retrofit:2.2.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    compile 'com.android.support:recyclerview-v7:24.0.0'
    compile 'com.squareup.picasso:picasso:2.5.2'


其次预先设置好网络权限:

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


下面就可以开始项目的创建了:

首先是布局文件

activity_main.xml

<?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="com.example.day01_rikao.MainActivity">    <android.support.v7.widget.RecyclerView        android:id="@+id/recyclerView"        android:layout_width="match_parent"        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView></RelativeLayout>

layout_recycler.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="horizontal"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <ImageView        android:layout_weight="1"        android:id="@+id/iv_id"        android:layout_width="0dp"        android:layout_height="wrap_content"/>    <TextView        android:layout_weight="1"        android:id="@+id/tv_id"        android:layout_width="0dp"        android:layout_height="wrap_content"/></LinearLayout>



接着是Java文件:

Film.java

package com.example.day01_rikao;import java.util.List;/** * Created by Me on 2017/12/25. */public class Film {    /**     * status : 0     * msg : OK     * data : [{"postid":"53160","title":"如果能预知生死,你是否能坦然接受死亡?","wx_small_app_title":"如果能预知生死,你是否能坦然接受死亡?","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-18/5a374bd841156_cut.jpeg","rating":"7.6","duration":"564","publish_time":"1514131560","like_num":"354","share_num":"217","post_type":"1","cates":[{"cateid":"16","catename":"动画"}],"request_url":"http://app.vmoiver.com/53160?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"16","catename":"动画"}]},{"postid":"53191","title":"法国青春洋溢奇幻短片:返老还童","wx_small_app_title":"法国青春洋溢奇幻短片:返老还童","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-25/5a40c2d140c76_cut.jpeg","rating":"7.8","duration":"218","publish_time":"1514131500","like_num":"263","share_num":"154","post_type":"1","cates":[{"cateid":"18","catename":"音乐"}],"request_url":"http://app.vmoiver.com/53191?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"18","catename":"音乐"}]},{"postid":"53141","title":"法国大脑洞奇趣动画:水手与人鱼","wx_small_app_title":"法国大脑洞奇趣动画:水手与人鱼","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-13/5a30cd4014c7a_cut.jpeg","rating":"7.5","duration":"355","publish_time":"1514131440","like_num":"182","share_num":"163","post_type":"1","cates":[{"cateid":"16","catename":"动画"}],"request_url":"http://app.vmoiver.com/53141?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"16","catename":"动画"}]},{"postid":"53204","title":"50部影史经典电影混剪「戏梦人生」","wx_small_app_title":"50部影史经典电影混剪「戏梦人生」","pid":"1","app_fu_title":"","is_xpc":"1","is_promote":"0","is_xpc_zp":"1","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-22/5a3cae8f931ac_cut.jpeg","rating":"7.4","duration":"238","publish_time":"1514131380","like_num":"324","share_num":"203","post_type":"1","cates":[{"cateid":"44","catename":"混剪"}],"request_url":"http://app.vmoiver.com/53204?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"44","catename":"混剪"}]},{"postid":"52789","title":"白日梦想家:旅行是人生的万能治愈剂","wx_small_app_title":"白日梦想家:旅行是人生的万能治愈剂","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmoiver.com/Uploads/cover/2017-10-16/59e4aaa63a577_cut.jpeg","rating":"7.8","duration":"241","publish_time":"1514131320","like_num":"278","share_num":"143","post_type":"1","cates":[{"cateid":"18","catename":"音乐"}],"request_url":"http://app.vmoiver.com/52789?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"18","catename":"音乐"}]},{"postid":"53184","title":"最特别的愿望清单","wx_small_app_title":"最特别的愿望清单","pid":"1","app_fu_title":"迟到的圣诞老人,不迟到的圣诞心愿","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"1","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-22/5a3d0564d38fe_cut.jpeg","rating":"7.8","duration":"137","publish_time":"1514045460","like_num":"921","share_num":"1487","post_type":"3","cates":[{"cateid":"78","catename":"生活"}],"request_url":"http://app.vmoiver.com/53184?qingapp=app_new","ispromote":"0","isalbum":"1","cate":[{"cateid":"78","catename":"生活"}]},{"postid":"53207","title":"超浓圣诞味钢琴演奏,1台钢琴点亮50万支灯泡","wx_small_app_title":"超浓圣诞味钢琴演奏,1台钢琴点亮50万支灯泡","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-22/5a3cd735cf99e_cut.jpeg","rating":"7.2","duration":"259","publish_time":"1514045160","like_num":"769","share_num":"1194","post_type":"1","cates":[{"cateid":"18","catename":"音乐"}],"request_url":"http://app.vmoiver.com/53207?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"18","catename":"音乐"}]},{"postid":"53201","title":"萌趣暖心节日短片「最好的祝福」","wx_small_app_title":"萌趣暖心节日短片「最好的祝福」","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-21/5a3b91d6127e9_cut.jpeg","rating":"7.1","duration":"122","publish_time":"1514045100","like_num":"336","share_num":"432","post_type":"1","cates":[{"cateid":"16","catename":"动画"}],"request_url":"http://app.vmoiver.com/53201?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"16","catename":"动画"}]},{"postid":"53183","title":"如果驾校教练是这样的\u2026\u2026","wx_small_app_title":"如果驾校教练是这样的\u2026\u2026","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-20/5a3a12cc5ff5e_cut.jpeg","rating":"7.5","duration":"310","publish_time":"1514045040","like_num":"327","share_num":"298","post_type":"1","cates":[{"cateid":"13","catename":"广告"}],"request_url":"http://app.vmoiver.com/53183?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"13","catename":"广告"}]},{"postid":"53202","title":"末日来袭,我们是否要坐以待毙?","wx_small_app_title":"末日来袭,我们是否要坐以待毙?","pid":"1","app_fu_title":"","is_xpc":"0","is_promote":"0","is_xpc_zp":"0","is_xpc_cp":"0","is_xpc_fx":"0","is_album":"0","tags":"","recent_hot":"0","discussion":"0","image":"http://cs.vmovier.com/Uploads/cover/2017-12-23/5a3e6217b6429_cut.jpeg","rating":"7.6","duration":"241","publish_time":"1514044980","like_num":"306","share_num":"155","post_type":"1","cates":[{"cateid":"8","catename":"搞笑"}],"request_url":"http://app.vmoiver.com/53202?qingapp=app_new","ispromote":"0","isalbum":"0","cate":[{"cateid":"8","catename":"搞笑"}]}]     */    private String status;    private String msg;    private List<DataBean> data;    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public List<DataBean> getData() {        return data;    }    public void setData(List<DataBean> data) {        this.data = data;    }    public static class DataBean {        /**         * postid : 53160         * title : 如果能预知生死,你是否能坦然接受死亡?         * wx_small_app_title : 如果能预知生死,你是否能坦然接受死亡?         * pid : 1         * app_fu_title :         * is_xpc : 0         * is_promote : 0         * is_xpc_zp : 0         * is_xpc_cp : 0         * is_xpc_fx : 0         * is_album : 0         * tags :         * recent_hot : 0         * discussion : 0         * image : http://cs.vmovier.com/Uploads/cover/2017-12-18/5a374bd841156_cut.jpeg         * rating : 7.6         * duration : 564         * publish_time : 1514131560         * like_num : 354         * share_num : 217         * post_type : 1         * cates : [{"cateid":"16","catename":"动画"}]         * request_url : http://app.vmoiver.com/53160?qingapp=app_new         * ispromote : 0         * isalbum : 0         * cate : [{"cateid":"16","catename":"动画"}]         */        private String postid;        private String title;        private String wx_small_app_title;        private String pid;        private String app_fu_title;        private String is_xpc;        private String is_promote;        private String is_xpc_zp;        private String is_xpc_cp;        private String is_xpc_fx;        private String is_album;        private String tags;        private String recent_hot;        private String discussion;        private String image;        private String rating;        private String duration;        private String publish_time;        private String like_num;        private String share_num;        private String post_type;        private String request_url;        private String ispromote;        private String isalbum;        private List<CatesBean> cates;        private List<CateBean> cate;        public String getPostid() {            return postid;        }        public void setPostid(String postid) {            this.postid = postid;        }        public String getTitle() {            return title;        }        public void setTitle(String title) {            this.title = title;        }        public String getWx_small_app_title() {            return wx_small_app_title;        }        public void setWx_small_app_title(String wx_small_app_title) {            this.wx_small_app_title = wx_small_app_title;        }        public String getPid() {            return pid;        }        public void setPid(String pid) {            this.pid = pid;        }        public String getApp_fu_title() {            return app_fu_title;        }        public void setApp_fu_title(String app_fu_title) {            this.app_fu_title = app_fu_title;        }        public String getIs_xpc() {            return is_xpc;        }        public void setIs_xpc(String is_xpc) {            this.is_xpc = is_xpc;        }        public String getIs_promote() {            return is_promote;        }        public void setIs_promote(String is_promote) {            this.is_promote = is_promote;        }        public String getIs_xpc_zp() {            return is_xpc_zp;        }        public void setIs_xpc_zp(String is_xpc_zp) {            this.is_xpc_zp = is_xpc_zp;        }        public String getIs_xpc_cp() {            return is_xpc_cp;        }        public void setIs_xpc_cp(String is_xpc_cp) {            this.is_xpc_cp = is_xpc_cp;        }        public String getIs_xpc_fx() {            return is_xpc_fx;        }        public void setIs_xpc_fx(String is_xpc_fx) {            this.is_xpc_fx = is_xpc_fx;        }        public String getIs_album() {            return is_album;        }        public void setIs_album(String is_album) {            this.is_album = is_album;        }        public String getTags() {            return tags;        }        public void setTags(String tags) {            this.tags = tags;        }        public String getRecent_hot() {            return recent_hot;        }        public void setRecent_hot(String recent_hot) {            this.recent_hot = recent_hot;        }        public String getDiscussion() {            return discussion;        }        public void setDiscussion(String discussion) {            this.discussion = discussion;        }        public String getImage() {            return image;        }        public void setImage(String image) {            this.image = image;        }        public String getRating() {            return rating;        }        public void setRating(String rating) {            this.rating = rating;        }        public String getDuration() {            return duration;        }        public void setDuration(String duration) {            this.duration = duration;        }        public String getPublish_time() {            return publish_time;        }        public void setPublish_time(String publish_time) {            this.publish_time = publish_time;        }        public String getLike_num() {            return like_num;        }        public void setLike_num(String like_num) {            this.like_num = like_num;        }        public String getShare_num() {            return share_num;        }        public void setShare_num(String share_num) {            this.share_num = share_num;        }        public String getPost_type() {            return post_type;        }        public void setPost_type(String post_type) {            this.post_type = post_type;        }        public String getRequest_url() {            return request_url;        }        public void setRequest_url(String request_url) {            this.request_url = request_url;        }        public String getIspromote() {            return ispromote;        }        public void setIspromote(String ispromote) {            this.ispromote = ispromote;        }        public String getIsalbum() {            return isalbum;        }        public void setIsalbum(String isalbum) {            this.isalbum = isalbum;        }        public List<CatesBean> getCates() {            return cates;        }        public void setCates(List<CatesBean> cates) {            this.cates = cates;        }        public List<CateBean> getCate() {            return cate;        }        public void setCate(List<CateBean> cate) {            this.cate = cate;        }        public static class CatesBean {            /**             * cateid : 16             * catename : 动画             */            private String cateid;            private String catename;            public String getCateid() {                return cateid;            }            public void setCateid(String cateid) {                this.cateid = cateid;            }            public String getCatename() {                return catename;            }            public void setCatename(String catename) {                this.catename = catename;            }        }        public static class CateBean {            /**             * cateid : 16             * catename : 动画             */            private String cateid;            private String catename;            public String getCateid() {                return cateid;            }            public void setCateid(String cateid) {                this.cateid = cateid;            }            public String getCatename() {                return catename;            }            public void setCatename(String catename) {                this.catename = catename;            }        }    }}


FilmInterFace.java

package com.example.day01_rikao;import retrofit2.Call;import retrofit2.http.POST;import retrofit2.http.QueryMap;/** * Created by Me on 2017/12/25. */public interface FilmInterFace {    /*        http://app.vmoiver.com/apiv3/post/getPostInCate?cateid=0&p=1        公共地址:http://app.vmoiver.com/        values(值): apiv3/post/getPostInCate        参数: cateid=0&p=1     */    @POST("apiv3/post/getPostInCate")    Call<Film> getFilm(@QueryMap android.support.v4.util.ArrayMap map);}


MainActivity.java

package com.example.day01_rikao;import android.os.Bundle;import android.support.v4.util.ArrayMap;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import java.util.List;import butterknife.BindView;import butterknife.ButterKnife;import butterknife.Unbinder;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;public class MainActivity extends AppCompatActivity {    /*            URI:http://app.vmoiver.com/apiv3/post/getPostInCate?cateid=0&p=1     */    private Unbinder mUnbinder;    @BindView(R.id.recyclerView)    RecyclerView mRecyclerView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mUnbinder = ButterKnife.bind(this);        mRecyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));        getData();    }    private void getData() {        Retrofit.Builder builder = new Retrofit.Builder().baseUrl("http://app.vmoiver.com/");        builder.addConverterFactory(GsonConverterFactory.create());        Retrofit build = builder.build();        FilmInterFace filmInterFace = build.create(FilmInterFace.class);        ArrayMap map = new ArrayMap();        map.put("cateid","1");        map.put("p","0");        Call film = filmInterFace.getFilm(map);        film.enqueue(new Callback() {            @Override            public void onResponse(Call call, Response response) {                Film film = (Film) response.body();                List<Film.DataBean> data = film.getData();                mRecyclerView.setAdapter(new MyRecyclerViewAdapter(MainActivity.this, data));            }            @Override            public void onFailure(Call call, Throwable t) {            }        });    }    @Override    protected void onDestroy() {        super.onDestroy();        mUnbinder.unbind();    }}


MyRecyclerViewAdapter

package com.example.day01_rikao;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.squareup.picasso.Picasso;import java.util.List;/** * Created by Me on 2017/12/25. */public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> {    private Context context;    private List<Film.DataBean> list;    public MyRecyclerViewAdapter(Context context, List list) {        this.context = context;        this.list = list;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.layout_recycler, parent, false);        return new ViewHolder(view);    }    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        Picasso.with(context).load(list.get(position).getImage()).into(holder.iv);        holder.tv.setText(list.get(position).getTitle());    }    @Override    public int getItemCount() {        if (list != null)            return list.size();        else            return 0;    }    static class ViewHolder extends RecyclerView.ViewHolder{        ImageView iv;        TextView tv;        public ViewHolder(View itemView) {            super(itemView);            iv = (ImageView) itemView.findViewById(R.id.iv_id);            tv = (TextView) itemView.findViewById(R.id.tv_id);        }    }}


到这里,基本就结束了,如果无法正确展示效果的话,那么可能是你的Android Studio版本过低的原因

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 别生气表情包 孩子先别着急吃棉花糖 快穿男主别着急 别碰 总裁别碰我 总裁别碰我秦静温 学霸哥哥别碰我 别碰我 总裁前夫别碰我 总裁别碰我秦雪温 妖孽弟弟别碰我 皇上别碰我 哥哥别碰我 总裁弟弟别碰我 别碰我英文 别碰我的人 别碰我歌曲 文字控别碰我手机图片 萌宝宝爹地别碰我妈咪 学霸哥哥别碰我动画 求你别要如从前纯熟地碰我 孕妻不乖总裁别碰我 孕妻不乖总载别碰我免费阅读 别在我离开之前离开 别等我离开才说爱我 别再离开我 荧光泪 别离开我需要你的爱 萌宝来袭老婆别离开 忍别离歌曲 别离歌阮冬灵免费阅读 别的多音字组词 别董大赏析 别董大的诗句 别董大作者 别西卜 别西卜兽 不卜可知 不计较 别说不 别说了别说别说你还爱着我 别说了表情包