当前位置 博文首页 > 李猫er:【Android项目实战 | 从零开始写app(十)】Okhttp+glide+
在上一篇: Android项目实战 | 从零开始写app(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换 的基础上实现数据的填充展示
由于首页会展示到推荐新闻列表,所以今天先把后台的新闻数据先请求下来,就跳着更吧,后面再继续完善首页~
~这篇早早就写好了,奈何发布了几次老是说审核不通过,说内容违规???? 无可奈何~
菜鸡一枚,写得不好,有问题的请指教~~
一、【Android项目实战 | 从零开始写app(一)】 创建项目
二、【Android项目实战 | 从零开始写app(二)】实现闪屏页,启动app
三、【Android项目实战 | 从零开始写app(三)】实现引导页,进入登录or主页面
四、【Android项目实战 | 从零开始写app(四)】Okhttp+Gson实现服务端登录验证功能
五、【Android项目实战 | 从零开始写app(五)】okhttp+gson实现服务端注册功能
六、【Android项目实战 | 从零开始写app(六)】用TabLayout+ViewPager搭建App 框架主页面底部导航栏
七、【Android项目实战 | 从零开始写app(七)】优化主页导航栏,禁用主页页面滑动切换效果
八、【Android项目实战 | 从零开始写app(八)】实现app首页广告轮播图切换和搜索跳转
九、【Android项目实战 | 从零开始写app(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换
十、【Android项目实战 | 从零开始写app(十)】Okhttp+glide+json+ListView实现新闻模块数据的填充显示
十一、【Android项目实战 | 从零开始写app(十一)】实现app首页智慧服务页面服务分类数据的解析及点击跳转
十二、【Android项目实战 | 从零开始写app(十二)】实现app首页智慧服务&热门推荐&热门主题、新闻
十三、【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录&信息修改等功能
十四、【Android项目实战 | 从零开始写app(十四)】实现图片发布模块 | 必知必会之调用系统相机拍照、相册
十五、【Android项目实战 | 从零开始写app(教程汇总)】Android 项目实战系列汇总、源代码
okhttp+gson+glide实现新闻分类模块数据的解析,并显示到ListView上,点击查看新闻详情。数据有限,只写新闻其中一个分类的新闻数据,其他的自己照着写。
修改NewsFragment中的代码如下:
package com.example.myapp.fragment;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.example.myapp.R;
import com.example.myapp.activity.NewsWebViewActivity;
import com.example.myapp.adapter.NewTabAdapter;
import com.example.myapp.bean.BannerBean;
import com.example.myapp.bean.NewsBean;
import com.example.myapp.utils.APIConfig;
import com.google.android.material.tabs.TabLayout;
import com.google.gson.Gson;
import com.youth.banner.Banner;
import com.youth.banner.adapter.BannerImageAdapter;
import com.youth.banner.holder.BannerImageHolder;
import com.youth.banner.indicator.CircleIndicator;
import com.youth.banner.listener.OnBannerListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* @ProjectName: MyApp
* @Package: com.example.myapp.fragment
* @ClassName: HomeFragment
* @Description:
* @Author: liyingxia
* @CreateDate: 2021/4/18 14:34
*/
public class NewsFragment extends BaseFragment{
private static final String TAG = NewsFragment.class.getSimpleName();
private Banner banner;
private NewsAdapter newsAdapter;
private ViewPager new_viewpager;
private ListView listView;
private NewTabAdapter newTabAdapter;
private TabLayout tabLayout;
private List<NewsBean.RowsBean> newBean;
private List<BannerBean.RowsDTO> bannerList;
@Override
public View initView() {
Log.i(TAG, "新闻的视图被实例化了");
View view = View.inflate(getActivity(), R.layout.fragment_news, null);
findView(view);
return view;
}
private void findView(View view) {
tabLayout = view.findViewById(R.id.tab_layout);
new_viewpager = view.findViewById(R.id.view_pager);
banner = view.findViewById(R.id.banner);
listView = (ListView) view.findViewById(R.id.new_listView);
}
@Override
public void initData() {
super.initData();
Log.e(TAG, "新闻中心的Fragment的数据被初始化了");
initBanner();
initTab();
getHttpData();
}
private void initTab() {
// 新闻分类标题导航栏
String[] title = {"时政","电视","旅游","视频","广播","基层"};
//创建装载Fragment的列表
List<Fragment> fragmentlist;
// 初始化列表,并把创建的6个Fragment页面添加到列表中
fragmentlist = new ArrayList<>();
fragmentlist.add(new NShizhengFragment());
fragmentlist.add(new NTVFragment());
fragmentlist.add(new NTravelFragment());
fragmentlist.add(new NvideoFragment());
fragmentlist.add(new NbrodcastFragment());
fragmentlist.add(new NJicengFragment());
newTabAdapter = new NewTabAdapter(getChildFragmentManager(),fragmentlist,title);
newsAdapter = new NewsAdapter();
new_viewpager.setAdapter(newTabAdapter); // ViewPager与Adapter绑定
tabLayout.setupWithViewPager(new_viewpager); // TabLayout与ViewPager绑定
}
private void initBanner() {
// Banner轮播图
bannerList = new ArrayList<BannerBean.RowsDTO>();
bannerList.add(new BannerBean.RowsDTO("http://192.93.196.45:8080/profile/home1.png", null));
bannerList.add(new BannerBean.RowsDTO("http://192.93.196.45:8080/profile/home2.png", null));
bannerList.add(new BannerBean.RowsDTO("http://192.93.196.45:8080/profile/home3.png", null));
bannerList.add(new BannerBean.RowsDTO("http://192.93.196.45:8080/profile/home4.png", null));
banner.setAdapter(new BannerImageAdapter<BannerBean