/**============================================================
* 版权: 久其软件 版权所有 (c)
* 包: com.jiuqi.njt.ui
* 修改记录:
* 日期 作者 内容
* =============================================================
* 2013-7-30 liyue
* ============================================================*/
package com.jiuqi.njt.ui;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.jiuqi.mobile.nigo.comeclose.bean.LoadOnGetList;
import com.jiuqi.mobile.nigo.comeclose.bean.app.news.NoticeNewsBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.manager.app.INewsManager;
import com.jiuqi.mobile.nigo.comeclose.manager.app.SelectNewsKey;
import com.jiuqi.mobile.nigo.comeclose.manager.app.SelectNewsParam;
import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext;
import com.jiuqi.njt.R;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.model.CModuleBean;
import com.jiuqi.njt.register.KNoticeNewsBean;
import com.jiuqi.njt.register.KNoticeNewsBeanUtil;
import com.jiuqi.njt.register.NoticeNewsBeanDBUtil;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.DateUtil;
import com.jiuqi.njt.util.TitleBarUtil;
import com.jiuqi.njt.util.UIUtil;
import com.jiuqi.njt.util.XzqhUtil;
import com.jiuqi.njt.widget.NjtTitleBar;
import com.jiuqi.njt.widget.XListView;
import com.jiuqi.njt.widget.XzqhActivityNew;
import com.jiuqi.njt.widget.XListView.IXListViewListener;
import com.jiuqi.njt.widget.XListView.ListFooteState;
/**
* <p>
* 农信网新闻列表
* </p>
*
* @author malingya
* @version 2013-10-11
*/
public class NoticeListActivity extends Activity implements IXListViewListener {
private Context context = this;
private String TAG = this.getClass().getName();
private Button btnProvince;
private AdminAreaBean xzqh = null;
private XListView newslistView;
private MyListAdapter mAdapter;
private ArrayList<NoticeNewsBean> items = new ArrayList<NoticeNewsBean>();
private queryResultAsyncTask queryTask;
private LinearLayout contentlayout;
private View loadlayout;
private LinearLayout tablelayout;
private int newstype;
private String repairType;
private long startIndex = 0;// 起始索引
private int totalCount = 0;// 总记录数
private String title;
private MyApp application;
private NoticeNewsBeanDBUtil helper ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doinit();
}
private void doinit() {
initParam();
initWidgets();
initListeners();
}
private void initParam() {
application = (MyApp) getApplication();
helper = new NoticeNewsBeanDBUtil(context);
CModuleBean cBean = (CModuleBean) getIntent().getSerializableExtra(
Constants.PARAM_MODULEBEAN);
if (cBean != null) {
switch (cBean.getModuleFlag()) {
case csdt:// 暂无模块
break;
default:
break;
}
}
}
private void initWidgets() {
setContentView(R.layout.nxw_module_list);
View rlTitleBar = findViewById(R.id.titleBarStub);
btnProvince = (Button) findViewById(R.id.btnProvince);
contentlayout = (LinearLayout) findViewById(R.id.content_layout);
loadlayout = findViewById(R.id.load_Layout);
tablelayout = (LinearLayout) findViewById(R.id.tablelayout);
title = "公告通知";
newslistView = (XListView) findViewById(R.id.listView);
NjtTitleBar titleBar= TitleBarUtil.createTitleBar(this, rlTitleBar, title,
Constants.BTN_BACK_TEXT, new OnClickListener() {
@Override
public void onClick(View v) {
NoticeListActivity.this.finish();
}
}, "首页", new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(NoticeListActivity.this,NjtMainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
NoticeListActivity.this.finish();
}
});
UIUtil.hideView(tablelayout);
toQuery();
}
private void initListeners() {
newslistView.setXListViewListener(this);
newslistView.setPullLoadEnable(true);
// setFootHintText();
btnProvince.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
UIUtil.requestXzqh(NoticeListActivity.this, null, 1);
}
});
}
private void toQuery() {
List<KNoticeNewsBean> dataList = helper.queryAll();
for (KNoticeNewsBean kNoticeNewsBean : dataList) {
items.add(KNoticeNewsBeanUtil.convertToNoticeNewsBean(kNoticeNewsBean));
}
initUI();
}
private void initUI() {
UIUtil.hideView(loadlayout);
UIUtil.showView(contentlayout);
setFootHintText();
mAdapter = new MyListAdapter(this, items);
newslistView.setAdapter(mAdapter);
onLoad();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Constants.REQUEST_XZQH_CODE) {
if (resultCode == RESULT_OK) {
AdminAreaBean xzqh = (AdminAreaBean) data
.getSerializableExtra(Constants.PARAM_XZQH);
this.xzqh = xzqh;
btnProvince.setText(xzqh.getFullName());
startIndex = 0;
toQuery();
}
}
}
/**
* 提交信息,访问网络时必须变成异步任务才可以提交,2.3规则。
*/
private class queryResultAsyncTask extends
AsyncTask<Void, Void, LoadOnGetList<? extends NoticeNewsBean>> {
@Override
protected void onPreExecute() {
}
@Override
protected LoadOnGetList<? extends NoticeNewsBean> doInBackground(
Void... params) {
LoadOnGetList<? extends NoticeNewsBean> newslist = new LoadOnGetList<NoticeNewsBean>();
try {
MyApp application = (MyApp) getApplication();
ClientContext context = application.getClientContext();
if (!application.getIsLogin()) {
context = null;
}
if (null == context) {
context = ClientContext.getClientContext(
Constants.SERVER_URL, Constants.ANONYMOUS,
Constants.ANONYMOUS);
application.setClientContext(context);
}
long code = 0;
if (null != xzqh) {
code = xzqh.getCode();
}
else {
if(newstype != 9){
code = new XzqhUtil(context).searchAread(
application.getProvince(), application.getCity(),
null);
}
}
SelectNewsKey key = new SelectNewsKey();
key.setNoticeNewsParams(newstype,code);
// SelectNewsParam para=new SelectNewsParam();
// para.setFieldName("createDate");
// para.setMinValue(new Date().getTime());
// SelectNewsParam param = new SelectNewsParam("createDate",
// startDate1, endDate1);
// 维修保养m需要添加一个维修类型
SelectNewsParam param = new SelectNewsParam(
"bigMachineCategories", "all".equals(repairType) ? null
: repairType);
SelectNewsParam param2 = new SelectNewsParam("status",2);
key.addParams(param);
key.addParams(param2);
key.setSize(Constants.PAGE_SIZE);
key.setStartIndex(startIndex);
INewsManager newsManager = context
.getManager(INewsManager.class);
newslist = newsManager.get(NoticeNewsBean.class, key);
newslist.getTotalCount();
} catch (Exception e) {
e.printStackTrace();
}
return newslist;
}
@Override
protected void onCancelled() {
super.onCancelled();
}
@Override
protected void onPostExecute(
LoadOnGetList<? extends NoticeNewsBean> result) {
if (startIndex == 0) {
items.clear();
}
startIndex += result.getList().size();// 设置下次读取的开始索引
totalCount = result.getList().size();
items.addAll((ArrayList<NoticeNewsBean>) result.getList());
initUI();
}
}
private void onLoad() {
newslistView.setSelection(((int)(startIndex))-totalCount);
newslistView.stopRefresh();
newslistView.stopLoadMore();
newslistView.setRefreshTime(DateUtil.getTimeStamp(new Date(),
DateUtil.MM_DD_HH_MM_SS));
}
@Override
public void onRefresh() {
startIndex = 0;
toQuery();
}
@Override
public void onLoadMore() {
if (startIndex%Constants.PAGE_SIZE == 0) {
toQuery();
} else {
if (totalCount != 0) {
UIUtil.showMsg(NoticeListActivity.this, "没有更多");
}
setFootHintText();
onLoad();
}
}
public void setFootHintText() {
if (totalCount == 0 ) {
newslistView.setListFooteState(ListFooteState.noData);
} else if(totalCount % Constants.PAGE_SIZE != 0){
newslistView.setListFooteState(ListFooteState.noMoreData);
}else {
newslistView.setListFooteState(ListFooteState.nomal);
}
newslistView.showNoData();
}
class MyListAdapter extends BaseAdapter {
private Context context;
private ArrayList<NoticeNewsBean> _items = new ArrayList<NoticeNewsBean>();
private LayoutInflater flater;
public MyListAdapter(Context context, ArrayList<NoticeNewsBean> items) {
this.context = context;
if (null != items) {
this._items = items;
}
flater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return _items.size();
}
@Override
public Object getItem(int position) {
return _items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder = null;
if (null == convertView) {
holder = new ViewHolder();
convertView = flater.inflate(R.layout.news_result_list, null);
TextView textTop = (TextView) convertView
.findViewById(R.id.text_top);
TextView textBottomLeft = (TextView) convertView
.findViewById(R.id.phoneRe);
TextView textBottomRight = (TextView) convertView
.findViewById(R.id.dataRe);
holder.setTvTitleTop(textTop);
holder.setTvTitleBootomLeft(textBottomLeft);
holder.setTvTitleBootomRight(textBottomRight);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final NoticeNewsBean obj = _items.get(position);
if (null != obj) {
holder.getTvTitleTop().setText(getTitile(obj));
holder.getTvTitleBootomLeft()
.setText(
obj.getAddPersonName() + " | "
+ obj.getCreateDateStr());
holder.getTvTitleBootomRight().setText("");
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,
NxwModulerDetailActivity.class);
intent.putExtra(Constants.PARAM_TITLE, title);
intent.putExtra(Constants.PARAM_URL,Constants.NXW_MODULER_URL_DETAIL_BASE+ obj.getGuid());
startActivity(intent);
}
});
} else {
holder.getTvTitleTop().setText("无数据");
}
return convertView;
}
private String getTitile(NoticeNewsBean bean) {
String titleString = "";
if (!TextUtils.isEmpty(repairType)) {
titleString = setNullToStr(bean.getTitle());
} else {
titleString = "["
+ provinceName(bean.getAdminAreaCode()
.getProvinceName()) + "]"
+ setNullToStr(bean.getTitle());
}
return titleString;
}
}
private String provinceName(String name) {
String provinceName = name;
if (provinceName != null && !"".equals(provinceName)) {
if ("内蒙古自治区".equals(provinceName) || "黑龙江省".equals(provinceName)
|| "黑龙江".equals(provinceName)) {
return provinceName.substring(0, 3);
} else {
return provinceName.substring(0, 2);
}
} else {
provinceName = "全国";
}
return provinceName;
}
class ViewHolder {
private TextView tvTitleTop;
private TextView tvTitleBootomLeft;
private TextView tvTitleBootomRight;
public TextView getTvTitleTop() {
return tvTitleTop;
}
public void setTvTitleTop(TextView tvTitleTop) {
this.tvTitleTop = tvTitleTop;
}
public TextView getTvTitleBootomLeft() {
return tvTitleBootomLeft;
}
public void setTvTitleBootomLeft(TextView tvTitleBootomLeft) {
this.tvTitleBootomLeft = tvTitleBootomLeft;
}
public TextView getTvTitleBootomRight() {
return tvTitleBootomRight;
}
public void setTvTitleBootomRight(TextView tvTitleBootomRight) {
this.tvTitleBootomRight = tvTitleBootomRight;
}
}
public String setNullToStr(String str) {
if (null == str) {
return "";
} else {
return str;
}
}
}