VR小项目(三)
17.打开上面上面创建好的VrVideoFragment并继承我们自己写的BaseFragment并实现他的两个方法
/** * Date:2017/3/18 * author:陈箫阳ChenXiaoYang * furction: */ public class VrVideoFragment extends BaseFragment { private RecyclerView recyclerView; @Override public RecyclerView.LayoutManager getLayoutManager() { //VR视频使用GridView的样式,参数 1.上下文 2.决定一行几列 return new GridLayoutManager(getActivity(), 2); } //在这里我们要复写onViewCreated方法 @Override public void onViewCreated(View view, Bundle savedInstanceState) { recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); //从接口中拿到LayoutManager RecyclerView.LayoutManager loaderManager = getLayoutManager(); //设置LayoutManager,让子类不用再设置 recyclerView.setLayoutManager(loaderManager); //使用开源框架OKGO,加载网址 OkGo.get(ApiUrls.URL_Query) } @Override protected RecyclerView.Adapter getAdapter() { return null; } }
在这里ApiUrls会报红,我们需要使用快捷键创建ApiUrls类用于存放网络数据,然后将Apiurls放入utli包中
/** * Date:2017/3/19 * author:陈箫阳ChenXiaoYang * furction: */ public class ApiUrls { public static String API_HOST = "api.youkes.com"; public static int API_PORT = 8081; public static String URL_Query = "http://" + API_HOST + ":" + API_PORT + "/api/video/query"; }
此时回到VrVideoFragment类
在这里我们要使用JSON需要导入:com.alibaba:fastjson:1.2.29包
步骤:按住control+alt+shift+s会弹出一个Project Structure点击所要添加的项目,点击Dependencies,点击+号,选择Library Dependency
步骤:按住control+alt+shift+s会弹出一个Project Structure点击所要添加的项目,点击Dependencies,点击+号,选择Library Dependency
.cacheKey(ApiUrls.URL_Query)//默认加载键 .cacheMode(CacheMode.DEFAULT)//采用默认格式 .execute(new StringCallback() { //网络请求成功的回调 @Override public void onSuccess(String s, Call call, Response response) { try { //创建原生的JSONObject来解析数据 JSONObject obj = new JSONObject(s); String content = obj.getString("content"); //然后报解析的数据先放在Bean类,再放到集合里,这里我们用Gson,fastJson会更方便 List<VideoItem> videoItems = JSON.parseArray(content, VideoItem.class); //给RecyclerView设置适配器,把数据集合传到适配器里 recyclerView.setAdapter(new VrVideoAdapter(videoItems)); } catch (JSONException e) { e.printStackTrace(); } } });在这里List集合的VideoItem会报红,使用快捷键创建VideoItem类, VrVideoAdapter也会报红,使用快捷键创建VrVideoAdapter适配器类实现一个内部抽象方法然后在让他调用父类的方法
/** * Date:2017/3/19 * author:陈箫阳ChenXiaoYang * furction: */ public class VideoItem { public String vtype; public String id; public String key; public String play; public String title; public String img; public String url; public String isbin; public String t0; public String t1; public String t2; public String userName; public String userNick; public String userPhoto; public String vclass; public int width; public int height; public float score0; public long date; public String _id; public String userId; public String[] tags; public int cnt; public String type; public String videoChannelName; public String videoChannelId; public String text; public String textSimple; public String dateCnSimple; }
/** * Date:2017/3/17 * author:陈箫阳ChenXiaoYang * furction:VR视频模块RecyclerView所需适配器 */ public class VrVideoAdapter extends BaseQuickAdapter<VideoItem> { //通过构造方法,加载一个默认布局及获取传过来的数据 public VrVideoAdapter(List<VideoItem> videoItems) { super(R.layout.vr_video_list_item, videoItems); } @Override protected void convert(BaseViewHolder helper, VideoItem item) { } }
在这里R.layout.vr_video_list_item会报红,使用快捷键创建vr_video_list_item布局文件,显示一些简单的布局,用到了一些颜色需要以下步骤
1.打开res下的values包再打开colors布局文件添加一些颜色
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</