上一篇我们做了一个高仿各大商城的引导页,那今天让我继续。
正所谓,一入商城深似海~
商城类的App,确实是有许多东西值得学习,但是只要略微斟酌一下,你又会发现,它们之间存在着许多不谋而合的相似,也就是所谓的雷同~既然如此,让我们也来接下地气,先从一个简单的首页做起吧~
实现的效果如下图:
准备:
①build.gradle文件需要添加的依赖:
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.zhy:okhttputils:2.6.2'
compile 'com.alibaba:fastjson:1.2.21'
compile 'com.youth.banner:banner:1.4.4'
compile 'com.github.bumptech.glide:glide:3.7.0'
②相关的联网权限不要忘了!
现在正式开始吧:
1.大布局就是一个简单的RecyclerView:
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/titlebar" />
2.接着我们就要实例化RecyclerView,并设置适配器了。
但是在设置适配器之前我们要先准备好数据,这里我们使用okhttputils进行联网请求数据,并使用fastJson进行解析:
(注:bean类WomenBean直接使用GsonFormat生成)
/**
* 使用okhttpUtils进行联网请求数据
*/
private void getDataFromNet() {
String url = "http://api.funwear.com/mbfun_server/index.php?m=Home&a=getAppLayoutV2&page=home&cid=2&deviceCode=00000000-6469-5d7a-ffff-ffff99d603a9&osCode=android&osVersion=19&deviceId=00000000-6469-5d7a-ffff-ffff99d603a9&token=&source=android&version=v4.2.2&osName=HTC+M8t&appName=youfanguanfang";
OkHttpUtils.
get()
.url(url)
.build()
.execute(new StringCallback() {
@Override
public void onError(okhttp3.Call call, Exception e, int id) {
Log.e("TAG", "联网失败" + e.getMessage());
}
@Override
public void onResponse(String response, int id) {
Log.e("TAG", "联网成功==" + response);
//联网成功后使用fastjson解析
processData(response);
}
});
}
// fastjson解析数据
private void processData(String json) {
JSONObject jsonObject = JSON.parseObject(json);
String data = jsonObject.getString("data");
JSONObject jsonData = JSON.parseObject(data);
String module = jsonData.getString("module");
List<WomenBean.WomenData.ModuleBean> moduleBeanList = parseAr