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