横向滑动+viewPager联动+上拉下拉+数组解析+fragment

package com.example.slx.slx1_17;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.FrameLayout;
import android.widget.RadioGroup;

import com.example.slx.fragment.HangQing;
import com.example.slx.fragment.Home;
import com.example.slx.fragment.SheZhi;
import com.example.slx.fragment.ZiXun;
import com.example.slx.utils.NetUtils;


public class MainActivity extends AppCompatActivity {

    private FrameLayout frameLayout;
    private RadioGroup radioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (NetUtils.isConn(this)) {
            //找id
            frameLayout = findViewById(R.id.framelayout);
            radioGroup = findViewById(R.id.radioGroup);
            //给radioGroup设置切换监听
            radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup radioGroup, int i) {
                    switch (i) {
                        case R.id.but_01:
                            getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new Home()).commit();
                            break;
                        case R.id.but_02:
                            getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new ZiXun()).commit();
                            break;
                        case R.id.but_03:
                            getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new HangQing()).commit();
                            break;
                        case R.id.but_04:
                            getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new SheZhi()).commit();
                            break;
                        default:
                            break;

                    }
                }

            });
        }else {
            NetUtils.openNetDialog(this);
        }
        }
}



package com.example.slx.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.slx.slx1_17.R;

/**
 * Created by lenovo on 2018/1/17.
 */

public class HangQing extends Fragment{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_hangqing, container, false);

        return view;
    }
}
package com.example.slx.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.example.slx.slx1_17.R;
import com.example.slx.utils.MyTask;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by lenovo on 2018/1/17.
 */

public class ZiXun extends Fragment{

    private TabLayout myTab;
    private ViewPager viewPager;
    private List<String> list;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_zixun, container, false);
        viewPager = view.findViewById(R.id.viewPager);
        myTab = view.findViewById(R.id.myTab);
        list = new ArrayList<>();
        list.add("数据新闻");
        list.add("快讯");
        list.add("头条");
        list.add("经编公告");
        list.add("美股");
        list.add("港股");
        list.add("基金");
        list.add("理财");

        viewPager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
            @Override
            public CharSequence getPageTitle(int position) {
                return list.get(position);
            }

            @Override
            //返回下标所对应的布局
            public Fragment getItem(int position) {
                //接受值contentfragment
                Contentfragment contentfragment = new Contentfragment();
                Bundle bundle = new Bundle();
//                快讯      txs
//                头条      toutiao
//                精编公告 news/mobile/jbgg
//                美股      news/mobile/mgxw
//                港股      news/mobile/ggxw
//                基金      news/mobile/jjxw
//                理财      news/mobile/lcxw
                String data="";
                if (list.get(position).equals("数据新闻")){
                    data="xbsjxw";
                }else if(list.get(position).equals("快讯")){
                    data="txs";
                }else if(list.get(position).equals("头条")){
                    data="toutiao";
                }else if(list.get(position).equals("经编公告")){
                    data="news/mobile/jbgg";
                }else if(list.get(position).equals("美股")){
                    data="news/mobile/mgxw";
                }else if(list.get(position).equals("港股")){
                    data="news/mobile/ggxw";
                }else if(list.get(position).equals("基金")){
                    data="news/mobile/jjxw";
                }else if(list.get(position).equals("理财")){
                    data="news/mobile/lcxw";
                }
                bundle.putString("data",data);
                //把值传给contentfragment。

                contentfragment.setArguments(bundle);

                return contentfragment;
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
        //横向滑动菜单和viewPager相结合
        myTab.setupWithViewPager(viewPager);
        //一次性加载viewPager
        viewPager.setOffscreenPageLimit(list.size());

      return view;
    }



    }

package com.example.slx.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.ScrollView;

import com.example.slx.Adapter.MyAdapter;
import com.example.slx.pojo.News;

import com.example.slx.slx1_17.R;
import com.example.slx.utils.MyTask;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

/**rl
 * Created by lenovo on 2018/1/17.
 */

public class Contentfragment extends Fragment{
    private int pageIndex=1;
    private int operType=1;
    List<News.DataBean> newsList=new ArrayList<>();
    private ListView listView;
    private PullToRefreshScrollView ps;
    private String url1="http://mnews.gw.com.cn/wap/data/news/";
    private String url2="/page_1.json";
    private String data;
    private String url;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.contentlayout,container,false);
        listView = view.findViewById(R.id.listView);
        ps = view.findViewById(R.id.ps);
        //取值
        Bundle bundle = getArguments();
        data = bundle.getString("data");
        url = url1+data+url2;
        requestData();
        initPs();
        return view;
    }

    private void initPs() {
        ps.setMode(PullToRefreshBase.Mode.BOTH);
        ps.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                 operType=1;
                 pageIndex=1;
                 url=url1+data+url2;
                 requestData();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                operType=2;
                pageIndex++;
                url=url1+data+url2;
                requestData();
            }
        });
    }

    private void requestData() {
        MyTask myTask = new MyTask(new MyTask.ICallBacks() {

            private MyAdapter myAdapter;

            @Override
            public void getJson(String s) {

                List<News> list = new ArrayList<>();
                Type type = new TypeToken<List<News>>() {

                }.getType();

                Gson gson = new Gson();
                list = gson.fromJson(s,type);
                if(operType==1){
                    newsList.clear();
                }
                newsList.addAll(list.get(0).getData());
                //List<News.DataBean> data = list.get(0).getData();
                if (myAdapter==null){
                    myAdapter = new MyAdapter(getActivity(),newsList);

                    listView.setAdapter(myAdapter);
                }else {
                    myAdapter.notifyDataSetChanged();
                }
               ps.onRefreshComplete();
            }
        });
        myTask.execute(url);
    }
}
package com.example.slx.Adapter;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.slx.pojo.News;
import com.example.slx.slx1_17.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import java.util.List;

/**
 * Created by lenovo on 2018/1/17.
 */

public class MyAdapter extends BaseAdapter{
    private Context context;
    private List<News.DataBean> list;
    private DisplayImageOptions options;

    public MyAdapter(Context context, List<News.DataBean> list) {
        this.context = context;
        this.list = list;
        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .build();
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder;
        if(view==null){
            view=View.inflate(context, R.layout.item,null);
            holder=new ViewHolder();
            holder.textView=view.findViewById(R.id.textView);
            holder.imageView=view.findViewById(R.id.imageView);
            view.setTag(holder);
        }else {
            holder=(ViewHolder)view.getTag();
        }
        holder.textView.setText(list.get(i).getTitle());
        ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder.imageView,options);
        return view;
    }
    public class ViewHolder{
        TextView textView;
        ImageView imageView;
    }
}












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值