开始写代码之前先进行准备工作. 以下的三个依赖全部导入项目中.
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-19'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-19'
implementation 'com.android.support:appcompat-v7:25.3.1'
然后就是网络权限,以及一些必要的依赖比如Gson,banner这些.
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/SmartRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.scwang.smartrefresh.layout.header.ClassicsHeader
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<在header和footer之间写布局代码>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
下面开始正式的代码环节
首先抽基类,一个BaseActivity,BaseFragment
BaseActivity oncreate()中
一共四个方法
1.bindLayout()抽象方法,绑定视图
2.initView()抽象方法,绑定组件
3.initData()抽象方法,操作数据
4.bindEvent()抽象方法,设置监听方法
5. protected <T extends View> T bindView(int resid) {
return findViewById(resid);
}
BaseFragment onCreateView中
return inflater.inflate(bindLayout(),container,false);
这个地方直接绑定BaseActifity中的bindLayout()方法
onActivityCreated()方法中
2.initView()抽象方法,绑定组件
3.initData()抽象方法,操作数据
4.bindEvent()抽象方法,设置监听方法
5. protected <T extends View> T bindView(int resid) {
return findViewById(resid);
}
MainActivity页面
public class MainActivity extends BaseActivity {
private String bannerUrl = "https://api.apiopen.top/musicRankings?tdsourcetag=s_pcqq_aiomsg";
private String listviewUrl = "http://172.17.8.100/small/commodity/v1/commodityList";
private SmartRefreshLayout sma;
private com.alanapi.banner.Banner banner;
private ListView listview;
@Override
protected int bindLayout() {
return R.layout.activity_main;
}
@Override
protected void initView() {
sma = bindView(R.id.SmartRefreshLayout);
banner = bindView(R.id.banner01);
listview = bindView(R.id.listview);
}
@Override
protected void initData() {
HttpUtils.httpAsynTask(bannerUrl, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
ArrayList<Two> result = jsonBean.getResult();
banner.setBannerImageLoader(new BannerImageLoader() {
@Override
protected void displayImage(Context context, ImageView imageView, Object o) {
Two two = (Two) o;
Glide.with(MainActivity.this).load(two.getPic_s210()).into(imageView);
}
});
banner.isAutoPlay(true);
banner.setData(result);
banner.setDelayTime(3000);
banner.start();
}
});
HttpUtils.httpAsynTask(listviewUrl, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean2 bean2 = gson.fromJson(s, JsonBean2.class);
JsonBean2.ResultBean result = bean2.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());
MyAdapter adapter = new MyAdapter(MainActivity.this,list);
listview.setAdapter(adapter);
}
});
}
@Override
protected void bindEvent() {
}
}
adapter页面
public class MyAdapter extends BaseAdapter {
private Context context;
private ArrayList<CommodityListBean> list;
public MyAdapter(Context context, ArrayList<CommodityListBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size()<0?0:list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView==null){
holder = new ViewHolder();
convertView = View.inflate(context,R.layout.item1,null);
holder.tv1 = convertView.findViewById(R.id.tv1);
holder.img1 = convertView.findViewById(R.id.img1);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.tv1.setText(list.get(position).getCommodityName());
Glide.with(context).load(list.get(position).getMasterPic()).into(holder.img1);
return convertView;
}
class ViewHolder{
ImageView img1;
TextView tv1;
}
}