框架基本介绍:
这是一个基本的列表页面的开发框架,这个列表页面的功能有:可自由配置标题栏、下拉刷新、上拉加载、网络请求时展示等待动画、请求失败及数据为空的页面展示。
写在前面:
本文可以自由的进行网络请求框架、图片加载框架、上拉刷新下拉加载框架、加载等待动效框架的自由配置。配置鸿洋大神的万能的ListView的适配器框架。
这样一个完整功能的列表页面,你们需要多少代码?
private List<BeanMyTask> datas;
private CommeAdapter<BeanMyTask> adapter;
@Override
protected UsingListBySon initDataBySon() {
return new UsingListBySon(){
@Override
public void parseJsonMessage(String msg) {
try {
loadingSwitch(false);
refershSwitch(true);
refershSwitch(false);
Gson gson = new Gson();
BeanMyTaskNet beanMyTaskNet = gson.fromJson(msg , BeanMyTaskNet.class);
if (!beanMyTaskNet.isSuccess()){
OkToast.getInstance(beanMyTaskNet.getMsg());
}else {
int counts = beanMyTaskNet.getBody().getDatas().size();
if (counts <= 0){
emptySwitch(true);
}else {
emptySwitch(false);
errorSwitch(false);
for (int i = 0; i <counts ; i++){
BeanMyTaskNet.BodyBean.DatasBean dataBean = beanMyTaskNet.getBody().getDatas().get(i);
datas.add(new BeanMyTask(ParseHtmlCode.ParseCode(dataBean.getName()) , dataBean.getWorkTasking().getId() , dataBean.getStatus() ,dataBean.getAssessType() , dataBean.getWorkTasking().getScore()+"分" , dataBean.getEndTime() , dataBean.getStatus(),dataBean.getOffice().getId()));
}
adapter.notifyDataSetChanged();
thinkNextPageNo(beanMyTaskNet.getBody().getCount());
}
}
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void insertAdapter(ListView parentListView) {
parentListView.setAdapter(adapter);
}
@Override
public String insertUrl() {
return "http://www.dbdjypt.com:81/mobile/index/WDRWlist;JSESSIONID=79d66350590d495ba328d81b8a3812b1";
}
@Override
public void clearDatas() {
datas.clear();
}
};
}
@Override
protected void init(Bundle savedInstanceState){
initDatas();
setLeftBtn(true, R.drawable.bbck, new View.OnClickListener(){
@Override
public void onClick(View v){
finish();
overridePendingTransition(R.anim.left_fadein,R.anim.left_fadeout);
}
});
setTopTitle( "测试展示的列表页面" , true );
setRightBtn( false , 0 , null );
}
private void initDatas(){
datas = new ArrayList<>();
adapter = new CommeAdapter<BeanMyTask>(datas , AnticityTestListBar.this , R.layout.item_mytask) {
@Override
public void cover(MyViewHolder holder, BeanMyTask item) {
holder.setText(R.id.task_title , item.getTitle());
holder.setText(R.id.task_score , "任务分值:"+item.getScore());
holder.setText(R.id.task_type , "考核类别:"+item.getType());
holder.setText(R.id.task_statue , "任务状态:"+item.getStatue());
}
};
}
这么些代码就能直接完成这样的一个完成的页面的开发。而且类似功能的代码只需要继承基类,做一个json数据解析,创建列表适配器。
我的无敌基类。
/**
* 不必在乎你为何这么长 因为你是万能上帝类啊!!
*/
public abstract class TopbarBaseListActivity extends Activity{
private UsingListBySon usingListBySon;
private View emptyPage , errorPage;
private MyTaskStackTrace queue;
public static final int NO_STATUE_BAR = 0;
public static final int ALPHA_STATUE_BAR = 1;
public static fina