package com.example.news_consulting_project.fragment;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.example.news_consulting_project.R;
import com.example.news_consulting_project.adapter.Fragmentone_ViewPagerAdapter;
import com.example.news_consulting_project.adapter.MyAdapter;
import com.example.news_consulting_project.beans.WangLuo;
import com.example.news_consulting_project.utils.HttpUtils;
import com.example.news_consulting_project.utils.Judgment_Network;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.utils.L;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Fragment_one extends Fragment{
private String[] imgs={
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639296673&di=43114bdbe3faae553881cc3ef1c60322&imgtype=0&src=http%3A%2F%2Fdesk.fd.zol-img.com.cn%2Ft_s960x600c5%2Fg5%2FM00%2F04%2F0C%2FChMkJljeDCmIOQJLAAsSVSpxRywAAbPVwG-PqsACxJt217.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639356358&di=6bbeba2abbfefc2b20f49dea1fbbf327&imgtype=0&src=http%3A%2F%2Fimg.tuku.cn%2Ffile_big%2F201504%2F0c07f3655d38407aa8f0be5192c4e72e.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639493748&di=1b1f702c851df08de659d575d3f19561&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F2%2F5879a27b12a30.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639493747&di=f7dd31c220f09f384dc717816889afbc&imgtype=0&src=http%3A%2F%2Fimg.sj33.cn%2Fuploads%2Fallimg%2F201211%2F20121114133513139.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1530234463&di=99688fc3606ef9855b731d7da814061b&imgtype=jpg&er=1&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201410%2F02%2F233404gc5kp58b7oc9pleu.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639894632&di=fe8d97c2bbdec06d66ab8f68a08455db&imgtype=0&src=http%3A%2F%2Fy2.ifengimg.com%2Fa%2F2014_52%2F94eee5d08311efb.jpg",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1530235165&di=8cdeaf64b1cee9668f985227dd1b76cc&imgtype=jpg&er=1&src=http%3A%2F%2Fimg.pintu360.com%2Fwp-content%2Fuploads%2F2015%2F03%2F5fae62bca5d2c05bc7920705c64b06a2.jpg%3Fx-oss-process%3Dstyle%2Farticle-detail-744",
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529553594735&di=4133e5bb6f4221acbc673d0518e34ed6&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D1706558701%2C1505343713%26fm%3D214%26gp%3D0.jpg",
};
private ViewPager viewPager;
private LinearLayout linearLayout;
private HttpUtils httpUtils;
private boolean connectivity;
private RelativeLayout relativeLayout;
private List<ImageView> image_list= new ArrayList<>();
private List<WangLuo.ResultsBean> list = new ArrayList<>();
private Fragmentone_ViewPagerAdapter adapter;
private String path = "http://gank.io/api/search/query/listview/";
private int page=1;
private MyAdapter adapter1;
//接受当前的页
private int num ;
private PullToRefreshListView pullToRefreshListView;
//
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//接受当前的位置
num = viewPager.getCurrentItem();
//改变页面的选中
viewPager.setCurrentItem(num+1);
handler.sendEmptyMessageDelayed(1,2000);
}
};
//单列
public static Fragment getInstance(String title){
//创建Fragmentone
Fragment_one fragment_one = new Fragment_one();
//创建bundle
Bundle bundle = new Bundle();
//添加值
bundle.putString("title",title);
//把值添加到Arguments中
fragment_one.setArguments(bundle);
return fragment_one;
}
//1.开始view
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.i("TAG","onCreateView");
View view = inflater.inflate(R.layout.fragment_one,container,false);
//获得组件
initSetView(view);
return view;
}
//2.获得组件
private void initSetView(View view) {
viewPager = view.findViewById(R.id.fragmentone_viewpager2);
linearLayout = view.findViewById(R.id.ll);
relativeLayout = view.findViewById(R.id.fragment_one_re);
//获得资源ID
pullToRefreshListView = view.findViewById(R.id.pull_listview);
//设置头部底部的视图
//2.设置模式 BOTH 可以上拉 下拉 pull_from_end代表上拉,pull_from_start代表下拉
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
//3.都是布尔类型 第一个如果为true 时 当前设置的就是头部 如果第二个为true设置的就是底部
//先请求上拉刷新
final ILoadingLayout startLoading= pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLoading.setPullLabel("下拉刷新");
startLoading.setRefreshingLabel("正在刷新");
startLoading.setReleaseLabel("放开刷新");
ILoadingLayout endLoading = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLoading.setPullLabel("上拉加载");
endLoading.setRefreshingLabel("正在加载");
endLoading.setReleaseLabel("放开加载");
//4.接口回调上拉下拉
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page = 1;
getDatas();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//必须在异步中完成 在列表没有数据的时候,不再请求接口,调用当前方法
pullToRefreshListView.onRefreshComplete();
}
},2000);
//可以设置刷新的时间....
startLoading.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page+=1;
getDatas();
//12.
handler.postDelayed(new Runnable() {
@Override
public void run() {
pullToRefreshListView.onRefreshComplete();
}
},2000);
}
});
adapter1 = new MyAdapter(list,getActivity());
pullToRefreshListView.setAdapter(adapter1);
}
//3.页面展示
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//请求网络状态
connectivity = Judgment_Network.getInstance().isConnectivity(getActivity());
//得到title值
Bundle arguments = getArguments();
if (arguments.get("title").equals("头条")){
//请求数据
//判断当前网络
if (connectivity){
//2.1 获得小圆点
initView();
//适配器展示viewpager
adapter = new Fragmentone_ViewPagerAdapter(imgs,getActivity(),handler);
//4.1加载适配器
viewPager.setAdapter(adapter);
handler.sendEmptyMessageDelayed(1,3000);
//4.1_1轮播图滑动监听
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//通过存入集合中的Imageview 来判断小圆点的样子
for (int i = 0; i <image_list.size() ; i++) {
if(i == position%image_list.size()){
image_list.get(i).setSelected(true);
}else {
image_list.get(i).setSelected(false);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}else {
//从缓存中取图片
}
}
}
//获得小圆点
private void initView() {
for (int i = 0; i < imgs.length; i++) {
//创建图片
ImageView imageView = new ImageView(getActivity());
//设置选择器
imageView.setImageResource(R.drawable.image_selector);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10,10,10,10);
linearLayout.addView(imageView,layoutParams);
//添加到集合中
image_list.add(imageView);
}
//设置默认要显示的轮播图的原点
image_list.get(0).setSelected(true);
}
//请求不同的数据是要做的判断
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
Log.i("TAG", "setUserVisibleHint");
Bundle arguments = getArguments();
//取值赋值
if (isVisibleToUser && arguments.get("title").equals("头条")){
//请求数据
//判断当前网络
if(connectivity){
getData("category/Android/count/10/page/1");
}else{
//从缓存中取图片
}
}else if(isVisibleToUser && arguments.get("title").equals("娱乐")){
relativeLayout.setVisibility(View.GONE);
getData("category/all/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("科技")){
relativeLayout.setVisibility(View.GONE);
getData("category/iOS/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("信息")){
relativeLayout.setVisibility(View.GONE);
getData("category/休息视频/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("八卦")){
relativeLayout.setVisibility(View.GONE);
getData("category/福利/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("北京")){
relativeLayout.setVisibility(View.GONE);
getData("category/拓展资源/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("上海")){
relativeLayout.setVisibility(View.GONE);
getData("category/前端/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("天津")){
relativeLayout.setVisibility(View.GONE);
getData("category/瞎推荐/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("重庆")){
relativeLayout.setVisibility(View.GONE);
getData("category/App/count/10/page/1");
handler.removeCallbacksAndMessages(null);
}else if(isVisibleToUser && arguments.get("title").equals("大大燕网")){
relativeLayout.setVisibility(View.GONE);
handler.removeCallbacksAndMessages(null);
}
}
//请求数据的方法 参数传入分类
public void getData(String s) {
httpUtils= HttpUtils.getInstence();
String url = path+s;
httpUtils.getdata(url);
httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
@Override
public void getjsondata(String json) {
Gson gson = new Gson();
WangLuo wangLuo = gson.fromJson(json, WangLuo.class);
List<WangLuo.ResultsBean> results = wangLuo.getResults();
//8.在list集合中添加数据
Log.i("TAG",results.size()+"");
//如果是第一页的数据 清空集合
if (page == 1){
list.clear();
}
//将请求到的数据刷新
list.addAll(results);
adapter1.notifyDataSetChanged();
}
});
}
public void getDatas() {
String u = "category/Android/count/10/page/"+page;
String url = path+u;
httpUtils.getdata(url);
httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
@Override
public void getjsondata(String json) {
Gson gson = new Gson();
WangLuo wangLuo = gson.fromJson(json, WangLuo.class);
List<WangLuo.ResultsBean> results = wangLuo.getResults();
//8.在list集合中添加数据
Log.i("TAG",results.size()+"");
//如果是第一页的数据 清空集合
if (page == 1){
list.clear();
}
//将请求到的数据刷新
list.addAll(results);
adapter1.notifyDataSetChanged();
}
});
}
}
第二种请求的方式
package com.example.lianxiti.fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import com.example.lianxiti.MainActivity;
import com.example.lianxiti.R;
import com.example.lianxiti.adapter.MyAdapter;
import com.example.lianxiti.adapter.PagerAdapterOne;
import com.example.lianxiti.beans.Beans;
import com.example.lianxiti.beans.MyBeans;
import com.example.lianxiti.utils.HttpUtils;
import com.example.lianxiti.utils.MyApp;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class FragmentOne extends Fragment{
private String image_url = "https://www.zhaoapi.cn/ad/getAd";
private String name_path = "https://www.apiopen.top/novelApi";
private HttpUtils httpUtils ;
private ViewPager viewPager;
private LinearLayout linearLayout;
private RelativeLayout relativeLayout;
private PullToRefreshListView pullToRefreshListView;
private List<ImageView> list_img = new ArrayList<>();
private List<ImageView> list_img1 = new ArrayList<>();
private List<MyBeans.DataBean> list = new ArrayList<>();
private MyAdapter adapter ;
private int num;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
num = viewPager.getCurrentItem();
viewPager.setCurrentItem(num+1);
handler.sendEmptyMessageDelayed(1,3000);
}
};
//单列
public static Fragment getInStance(String title){
//创建Fragment
FragmentOne fragmentOne = new FragmentOne();
Bundle bundle = new Bundle();
bundle.putString("title",title);
fragmentOne.setArguments(bundle);
return fragmentOne;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentone,container,false);
//1.获得组件
initSetView(view);
return view;
}
//1.2获得组件
private void initSetView(View view) {
viewPager = view.findViewById(R.id.fragmentone_view);
linearLayout = view.findViewById(R.id.fragmentone_l1near);
relativeLayout = view.findViewById(R.id.fragmentone_r1);
pullToRefreshListView = view.findViewById(R.id.fragmentone_p);
//设置
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
final ILoadingLayout startLoading = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLoading.setPullLabel("下拉刷新");
startLoading.setRefreshingLabel("正在刷新");
startLoading.setReleaseLabel("放开刷新");
ILoadingLayout endLoading = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLoading.setPullLabel("上拉加载");
endLoading.setRefreshingLabel("正在加载");
endLoading.setReleaseLabel("放开加载");
//借口回调
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
getData();
//可以设置刷新的时间....
startLoading.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
getData();
}
});
adapter = new MyAdapter(getActivity(), list);
pullToRefreshListView.setAdapter(adapter);
}
//加载视图
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//得到title的值
Bundle arguments = getArguments();
if (arguments.get("title").equals("头条")){
//解析数据
getDataImage();
}else {
}
}
//获得图片
public void getDataImage() {
httpUtils = HttpUtils.getInstence();
httpUtils.getdata(image_url);
httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
@Override
public void getjsondata(String json) {
Gson gson = new Gson();
Beans beans = gson.fromJson(json, Beans.class);
List<Beans.DataBean> list01 = beans.getData();
Log.i("TAG",list01.size()+"");
for (int i = 0; i <list01.size(); i++) {
String icon = list01.get(i).getIcon();
ImageView imageView = new ImageView(getActivity());
ImageLoader.getInstance().displayImage(icon,imageView, MyApp.getOptins());
list_img.add(imageView);
//获得小圆点
setRound();
}
PagerAdapterOne adapterOne = new PagerAdapterOne(getActivity(),list_img,handler);
viewPager.setAdapter(adapterOne);
//
handler.sendEmptyMessageDelayed(1,3000);
//监听
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for (int i = 0; i < list_img1.size(); i++) {
if (i==position%list_img.size()){
list_img1.get(i).setSelected(true);
}else {
list_img1.get(i).setSelected(false);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
});
}
//获得小圆点
private void setRound() {
for (int i = 0; i <list_img.size() ; i++) {
ImageView imageView1 = new ImageView(getActivity());
imageView1.setImageResource(R.drawable.danji);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10,10,10,10);
linearLayout.addView(imageView1,layoutParams);
list_img1.add(imageView1);
}
list_img1.get(0).setSelected(true);
}
//请求不同数据进行判断
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
Bundle arguments = getArguments();
if (isVisibleToUser && arguments.get("title").equals("头条")){
//获得数据
getData();
}else if (isVisibleToUser && arguments.get("title").equals("娱乐")){
relativeLayout.setVisibility(View.GONE);
handler.removeCallbacksAndMessages(null);
}else if (isVisibleToUser && arguments.get("title").equals("科技")){
relativeLayout.setVisibility(View.GONE);
handler.removeCallbacksAndMessages(null);
}else if (isVisibleToUser && arguments.get("title").equals("信息")){
relativeLayout.setVisibility(View.GONE);
handler.removeCallbacksAndMessages(null);
}
}
//获得数据
public void getData() {
httpUtils = HttpUtils.getInstence();
String url = name_path;
httpUtils.getdata(url);
httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
@Override
public void getjsondata(String json) {
Gson gson = new Gson();
MyBeans myBeans = gson.fromJson(json, MyBeans.class);
List<MyBeans.DataBean> data = myBeans.getData();
list.addAll(data);
adapter.notifyDataSetChanged();
}
});
}
}