TabLayout+Banner轮播滑动+GridView+PullToRefreshListView

activity_main布局

没有用base

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <android.support.design.widget.TabLayout
        android:id="@+id/tab"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

MainActivity

写权限 写权限 写权限

导包 导包 导包

1.(gson) implementation ‘com.google.code.gson:gson:2.8.5’
2. (glide)implementation ‘com.github.bumptech.glide:glide:4.9.0’
3. (design) implementation ‘com.android.support:design:28.0.0’
4. (banner) implementation ‘com.youth.banner:banner:1.4.9’
5. (pulltorefresh) implementation project(’:pulltorefresh_library’)

package weektest.baway.com.day7_1;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import java.util.ArrayList;

import weektest.baway.com.day7_1.adapter.TabAdapter;
import weektest.baway.com.day7_1.tablayout.Tab1;
import weektest.baway.com.day7_1.tablayout.Tab2;

public class MainActivity extends AppCompatActivity {

    private ViewPager viewPager;
    private TabLayout tab;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找控件
        viewPager = findViewById(R.id.vp);
        tab = findViewById(R.id.tab);
        ArrayList<Fragment> list=new ArrayList<>();
        list.add(new Tab1());
        list.add(new Tab2());
        String[] str={"首页","我的"};
        TabAdapter adapter=new TabAdapter(getSupportFragmentManager(),list,str);
        viewPager.setAdapter(adapter);
        tab.setupWithViewPager(viewPager);
    }
}

TabAdapter

package weektest.baway.com.day7_1.adapter;

import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

public class TabAdapter extends FragmentPagerAdapter {
    ArrayList<Fragment> list;
    String[] str;

    public TabAdapter(FragmentManager fm, ArrayList<Fragment> list, String[] str) {
        super(fm);
        this.list = list;
        this.str = str;
    }

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

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

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return str[position];
    }
}

Tab布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#e49ae3"
    android:orientation="vertical">

    <com.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

    <GridView
        android:id="@+id/gv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3" />

    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/pull"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

HttpUtil

package weektest.baway.com.day7_1;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class HttpUtil {
    public static boolean isNet(Context context){
        if (context!=null){
            ConnectivityManager mConnectivityManager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo=mConnectivityManager.getActiveNetworkInfo();
            if (mNetworkInfo!=null){
                return mNetworkInfo.isAvailable();
            }
        }
        return false;
    }
    public static void httpAsyncTask(String strUrl,final CallBackString backString){
        new AsyncTask<String,Integer,String>(){

            @Override
            protected String doInBackground(String... strings) {
                return httpGet(strings[0]);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                backString.getData(s);
            }
        }.execute(strUrl);
    }
    public interface CallBackString{
        void getData(String s);
    }
    public static String httpGet(String strUrl){
        try {
            URL url=new URL(strUrl);
            HttpURLConnection connection= (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            connection.setRequestMethod("GET");
            InputStream stream=connection.getInputStream();
            BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
            StringBuilder builder=new StringBuilder();
            String str="";
            while ((str=reader.readLine())!=null){
                builder.append(str);
            }
            connection.disconnect();
            return builder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

TabLayout

package weektest.baway.com.day7_1.tablayout;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
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.GridView;
import android.widget.ImageView;
import android.widget.ListView;

import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;

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

import weektest.baway.com.day7_1.HttpUtil;
import weektest.baway.com.day7_1.R;
import weektest.baway.com.day7_1.adapter.GrdiAdapter;
import weektest.baway.com.day7_1.adapter.MyAdapter;
import weektest.baway.com.day7_1.bean.BannerBean;
import weektest.baway.com.day7_1.bean.GridBean;
import weektest.baway.com.day7_1.bean.JsonBean;
import weektest.baway.com.day7_1.bean.One;
import weektest.baway.com.day7_1.bean.Three;

public class Tab1 extends Fragment {

    private Banner banner;
    private GridView gridView;
    private PullToRefreshListView listView;
    private ArrayList<One> list;
    private String GridUrl = "http://gank.io/api/xiandu/categories";
    private String ListUrl = "http://172.17.8.100/small/commodity/v1/commodityList";
    private String bannerUrl = "https://api.apiopen.top/videoCategory";

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab1, container, false);
        //找控件
        banner = view.findViewById(R.id.banner);
        gridView = view.findViewById(R.id.gv);
        listView = view.findViewById(R.id.pull);
        listView.setMode(PullToRefreshListView.Mode.BOTH);
        listView.setScrollingWhileRefreshingEnabled(true);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //轮播图
        HttpUtil.httpAsyncTask(bannerUrl, new HttpUtil.CallBackString() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                BannerBean bean = gson.fromJson(s, BannerBean.class);
                List<BannerBean.ResultBean.ItemListBean> list = bean.getResult().getItemList();
                banner.setImages(list);
                banner.setImageLoader(new ImageLoader() {
                    @Override
                    public void displayImage(Context context, Object path, ImageView imageView) {
                        BannerBean.ResultBean.ItemListBean bean1 = (BannerBean.ResultBean.ItemListBean) path;
                        Glide.with(context).load(bean1.getData().getIcon()).into(imageView);

                    }
                });
                banner.setDelayTime(3000);
                banner.isAutoPlay(true);
                banner.start();
            }
        });
        //列表
        HttpUtil.httpAsyncTask(ListUrl, new HttpUtil.CallBackString() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                JsonBean bean = gson.fromJson(s, JsonBean.class);
                Three result = bean.getResult();
                ArrayList<One> commodityList = result.getMlss().getCommodityList();
                ArrayList<One> commodityList1 = result.getPzsh().getCommodityList();
                ArrayList<One> commodityList2 = result.getRxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值