Android实战:浩比新闻(附完整代码)

源码地址:https://github.com/ambition-hb/HBNews_3 (更新于2019/6/2)

效果图如下:

Android实战:浩比新闻(附完整代码)_第1张图片

Android实战:浩比新闻(附完整代码)_第2张图片

Android实战:浩比新闻(附完整代码)_第3张图片

JSON数据从聚合数据上下载,选择《新闻头条》这个免费的API接口,接下来我们查看API文档。下图为手写简版JSON返回示例:

Android实战:浩比新闻(附完整代码)_第4张图片

由上图可以看出,服务器返回的是一个复杂的JSON格式数据,属于JSON中嵌套JSON再嵌套JSONArray。对于复杂的JSON格式数据,我们考虑使用GSON开源库解析JSON数据。(也可以考虑使用FastJSON)

首先,我们解析服务器返回的JSON数据:

1、AndroidStudio的build.gradle文件中配置compile ‘com.google.code.gson:gson:2.8.2’,Sync Now后即可导入库文件。
2、创建gson文件夹,根据返回的JSON数据格式在文件夹下面创建类①News②Result③Data,为了保证变量名的驼峰标识,引入@SerializedName("")。
3、我们使用OkHttp访问网络,在使用OkHttp之前,我们需要先在项目中添加OkHttp库的依赖。AndroidStudio的build.gradle文件中配置compile ‘com.square.okhttp3:okhttp:3.9.0’,Sync Now后即可导入库文件。
4、在MainActivity中添加sendRequestWithOkHttp()方法和ParseJsonWithGson()方法,用来解析服务器返回的数据。(这部分需要访问网络数据,别忘了添加INTERNET权限)
至此,解析JSON数据完毕!

然后,我们实现新闻列表界面的布局,并填充数据:

1、在activity_main.xml文件里添加ListView布局,APP的主体是一个列表视图。
2、新建一个名为NewsAdapter的类继承自BaseAdapter。
3、新建布局文件为news_item.xml,作为每一个列表项的布局。
4、修改gson文件夹下的Data类,为其添加一个构造方法,让数据更好的组织起来,方便调用。
(读取图片过程中会报一点小错误,后期慢慢完善)

最后,我们实现新闻列表的点击跳转并展示详情:

1、在包名右击New→Activity→Empty Activity,活动名为BrowseNewActivity,布局文件名为activity_browse_news。
2、修改activity_browse_news.xml,添加WebView布局。
3、修改BrowseNewActivity。
4、在MainActivity中添加list点击事件方法。

你可能感兴趣的:(Android实战)