布局
记得导banner包 implementation ‘com.youth.banner:banner:1.4.9’
activity-main
<?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">
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="300dp"/>
<GridView
android:id="@+id/gv"
android:numColumns="2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>
item1
<?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:orientation="horizontal"
>
<ImageView
android:id="@+id/imageview"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/text_view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
MainActivity
package com.bawei.week3moni;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import com.bawei.week3moni.adapter.LGAdapter;
import com.bawei.week3moni.base.BaseAcyivity;
import com.bawei.week3moni.bean.CommodityListBean;
import com.bawei.week3moni.bean.JsonBean;
import com.bawei.week3moni.bean.JsonBean2;
import com.bawei.week3moni.bean.Two;
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;
public class MainActivity extends BaseAcyivity {
private Banner banner;
private GridView gridView;
private PullToRefreshListView listView;
private String bannerUrl = "https://api.apiopen.top/musicRankings?tdsourcetag=s_pcqq_aiomsg";
private String listviewUrl = "http://172.17.8.100/small/commodity/v1/commodityList";
@Override
public int bindLayout() {
return R.layout.activity_main;
}
@Override
protected void initView() {
banner = bindView(R.id.banner);
gridView = bindView(R.id.gv);
listView = bindView(R.id.pull);
listView.setMode(PullToRefreshBase.Mode.BOTH);
listView.setPullToRefreshOverScrollEnabled(true);
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//请求网络
//刷新控件
listView.onRefreshComplete();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//请求网络
//把集合2的数据给集合1
//刷新适配器
listView.onRefreshComplete();
}
});
}
@Override
protected void initData() {
//轮播图
HttpUtil.httpAsynTask(bannerUrl, new HttpUtil.CallbackString() {
@Override
public void getData(String s) {
Gson gson=new Gson();
JsonBean bean = gson.fromJson(s, JsonBean.class);
List<Two> result = bean.getResult();
banner.setImages(result);
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Two two= (Two) path;
Glide.with(MainActivity.this).load(two.getPic_s192()).into(imageView);
}
});
banner.isAutoPlay(true);
banner.setDelayTime(3000);
banner.start();
}
});
//列表
HttpUtil.httpAsynTask(listviewUrl, new HttpUtil.CallbackString() {
@Override
public void getData(String s) {
Gson gson=new Gson();
JsonBean2 bean = gson.fromJson(s, JsonBean2.class);
JsonBean2.ResultBean result = bean.getResult();
JsonBean2.ResultBean.MlssBean mlss = result.getMlss();
JsonBean2.ResultBean.PzshBean pzsh = result.getPzsh();
JsonBean2.ResultBean.RxxpBean rxxp = result.getRxxp();
ArrayList<CommodityListBean> list=new ArrayList<>();
list.addAll(mlss.getCommodityList());
list.addAll(pzsh.getCommodityList());
list.addAll(rxxp.getCommodityList());
LGAdapter adapter=new LGAdapter(MainActivity.this,list);
listView.setAdapter(adapter);
//GridView
gridView.setAdapter(adapter);
}
});
}
@Override
protected void bindEvent() {
/* //下拉加载
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
HttpUtil.httpAsynTask(listviewUrl, new HttpUtil.CallbackString() {
private JsonBean2.ResultBean list;
@Override
public void getData(String s) {
Gson gson=new Gson();
JsonBean2 bean2 = gson.fromJson(s, JsonBean2.class);
list = bean2.getResult();
LGAdapter adapter=new LGAdapter(list,MainActivity.this);
}
});
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
}
});*/
}
}
HttpUtil
package com.bawei.week3moni;
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;
import javax.security.auth.callback.Callback;
/**
* @Author:Lenovo
* @E-mail:
* @Date:2019/2/15 19:33
* @Description:描述信息
*/
public class HttpUtil {
public boolean isNet(Context context){
if (context!=null){
ConnectivityManager connectivityManager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();
if (networkInfo!=null){
return networkInfo.isAvailable();
}
}
return false;
}
public static void httpAsynTask(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.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
InputStream stream=connection.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(stream,"utf-8"));
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;
}
}
记得导入bean包 自己定义的
base
baseActivity
package com.bawei.week3moni.base;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
import android.view.View;
/**
* @Author:Lenovo
* @E-mail:
* @Date:2019/2/15 19:33
* @Description:描述信息
*/
public abstract class BaseAcyivity extends FragmentActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(bindLayout());
initView();
initData();
bindEvent();
}
public abstract int bindLayout();
protected abstract void initView();
protected abstract void initData();
protected abstract void bindEvent();
protected <T extends View> T bindView(int resid){
return findViewById(resid);
}
}
BaseFragment
package com.bawei.week3moni.base;
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;
/**
* @Author:Lenovo
* @E-mail:
* @Date:2019/2/15 19:33
* @Description:描述信息
*/
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
protected abstract int bindLayout();
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
initData();
bindEvent();
}
protected abstract void initView();
protected abstract void initData();
protected abstract void bindEvent();
protected <T extends View > T bindView(int resid){
return (T) getView().findViewById(resid);
}
}
LGAdapter
package com.bawei.week3moni.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bawei.week3moni.R;
import com.bawei.week3moni.bean.CommodityListBean;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
/**
* @Author:Lenovo
* @E-mail:
* @Date:2019/2/15 19:33
* @Description:描述信息
*/
public class LGAdapter extends BaseAdapter {
private Context context;
private ArrayList<CommodityListBean> list;
public LGAdapter(Context context, ArrayList<CommodityListBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (view==null){
view= View.inflate(context, R.layout.item1,null);
holder=new ViewHolder();
holder.imageView = view.findViewById(R.id.imageview);
holder.textView=view.findViewById(R.id.text_view);
holder.textView1=view.findViewById(R.id.text_view1);
view.setTag(holder);
}else{
holder=(ViewHolder)view.getTag();
}
// holder.textView.setText(list.get(i).getSaleNum()+"");
holder.textView.setText(list.get(i).getPrice()+"");
holder.textView1.setText(list.get(i).getCommodityName());
Glide.with(context).load(list.get(i).getMasterPic()).into(holder.imageView);
return view;
}
class ViewHolder{
private ImageView imageView;
private TextView textView;
private TextView textView1;
}
}