package com.wb.sc.mk.personal;
import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.common.widget.ToastHelper;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.wb.sc.R;
import com.wb.sc.activity.base.BaseHeaderActivity;
import com.wb.sc.activity.base.ReloadListener;
import com.wb.sc.adapter.MsgAdapter;
import com.wb.sc.app.SCApp;
import com.wb.sc.bean.LawRule;
import com.wb.sc.config.NetConfig;
import com.wb.sc.config.RespCode;
import com.wb.sc.task.LawRuleRequest;
import com.wb.sc.util.Constans;
import com.wb.sc.util.MetaUtil;
import com.wb.sc.util.ParamsUtil;
public class LawRuleActivity extends BaseHeaderActivity implements OnClickListener, Listener<LawRule>,
ErrorListener, ReloadListener{
private int pageNo;
private int pageSize =10;
private LawRuleRequest mLawRuleRequest;
private LinearLayout main_view;
private LinearLayout itemView;
private PullToRefreshListView mPullListView;
private ListView mListView;
private MsgAdapter adapter;
private List<LawRule.LawRuleItem> list = new ArrayList<LawRule.LawRuleItem>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_law_rule);
initHeader(R.string.ac_law_rule);
getIntentData();
initView();
showLoading();
requestBase(getBaseRequestParams(), this, this);
}
@Override
public void getIntentData() {
}
@Override
public void initView() {
// main_view = (LinearLayout) findViewById(R.id.main_view);
mPullListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
mPullListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
mPullListView.setOnRefreshListener(new OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//处理下拉刷新
pageNo = 1;
// startMsgCenterRequest();
requestBase(getBaseRequestParams(), LawRuleActivity.this, LawRuleActivity.this);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//处理上拉加载
}
});
mPullListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
//滑动到底部的处理
// if(loadState == PullRefreshListViewHelper.BOTTOM_STATE_LOAD_IDLE && mMsgCenter.hasNextPage) {
// loadState = PullRefreshListViewHelper.BOTTOM_STATE_LOADING;
// mPage.pageNo++;
// startMsgCenterRequest();
showLoading();
requestBase(getBaseRequestParams(), LawRuleActivity.this, LawRuleActivity.this);
// }
}
});
//设置刷新时请允许滑动的开关使能
mPullListView.setScrollingWhileRefreshingEnabled(true);
//设置自动刷新功能
mPullListView.setRefreshing(false);
//设置拉动模式
mPullListView.setMode(Mode.PULL_FROM_END);
mListView = mPullListView.getRefreshableView();
adapter = new MsgAdapter(this, list);
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent intent = new Intent(LawRuleActivity.this, LawRuleDetialActivity.class);
intent.putExtra("lawRuleId", list.get(arg2 -1).lawRuleId);
startActivity(intent);
}
});
}
@Override
public void onClick(View v) {
super.onClick(v);
switch(v.getId()) {
case R.id.submit:
break;
}
}
/**
* 获取请求参数,请按照接口文档列表顺序排列
* @return
*/
private List<String> getBaseRequestParams() {
List<String> params = new ArrayList<String>();
params.add(ParamsUtil.getReqParam("FG48", 4));
params.add(ParamsUtil.getReqParam("MC_CENTERM", 16));
params.add(ParamsUtil.getReqParam(MetaUtil.readMeta(this, Constans.APP_CHANNEL), 20));
params.add(ParamsUtil.getReqParam(SCApp.getInstance().getUser().userId + "", 64));
params.add(ParamsUtil.getReqIntParam(pageNo, 3));
params.add(ParamsUtil.getReqIntParam(pageSize, 2));
return params;
}
/**
* 执行任务请求
* @param method
* @param url
* @param params
* @param listenre
* @param errorListener
*/
private void requestBase(List<String> paramsList,
Listener<LawRule> listenre, ErrorListener errorListener) {
if(mLawRuleRequest != null) {
mLawRuleRequest.cancel();
}
String url = NetConfig.getServerBaseUrl() + NetConfig.EXTEND_URL;
mLawRuleRequest = new LawRuleRequest(url, paramsList, listenre, errorListener);
startRequest(mLawRuleRequest);
}
@Override
public void onReload() {
}
@Override
public void onErrorResponse(VolleyError error) {
}
@Override
public void onResponse(LawRule response) {
if(response.respCode.equals(RespCode.SUCCESS)) {
pageNo++;
if(response.totalNum == 0) { //显示空
showEmpty();
return;
}
showContent();
list.addAll(response.datas);
adapter.notifyDataSetChanged();
} else {
showLoadError(this);
ToastHelper.showToastInBottom(this, response.respCodeMsg);
}
}
}