/**============================================================ * 版权: 久其软件 版权所有 (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; } } }