package com.jiuqi.njt.ui.staffmanagement; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.jqyd.android.module.lbs.util.CheckState_interface; import com.jiuqi.mobile.nigo.comeclose.bean.app.coop.CooperativeGroupBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.InnerManagementBean; import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectInnerManagermentKey; import com.jiuqi.njt.R; import com.jiuqi.njt.data.OptsharepreInterface; import com.jiuqi.njt.model.CModuleBean; import com.jiuqi.njt.util.Constants; import com.jiuqi.njt.util.DateUtil; import com.jiuqi.njt.util.UIUtil; import com.jiuqi.njt.widget.XListView; import com.jiuqi.njt.widget.XListView.IXListViewListener; import com.jiuqi.njt.widget.XListView.ListFooteState; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.AbsListView.OnScrollListener; import android.widget.LinearLayout.LayoutParams; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; /** *员工管理 主要是对角色下员工列表的查询 * @author * */ public class StaffManagement extends Activity implements IXListViewListener, OnClickListener, OnScrollListener { private Button backLeft ; private Button actionRight ; private EditText etSearch ; private ImageView ivDeleteText ; private int tvAction = 0; private Button addButton; private XListView listView; private OptsharepreInterface sharePre; private CModuleBean moduleBean; // 区别模块定制标示 private SelectInnerManagermentKey selectInnerManagermentKey = new SelectInnerManagermentKey();//查询条件 private String name; // 关键字 private AdminAreaBean xzqh; // 所在地 private boolean isFirst = true; // 信息查询是不是第一次(需要显示进度条) private long startIndex = 0; private int totalCount = 0; private List<InnerManagementBean> dataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); doinit(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); if(new CheckState_interface(StaffManagement.this) .checkConnection()) { startIndex = 0; // toQuery(); } } private void doinit() { initParam(); initWidgets(); initListeners(); initUI(); } private void initParam() { // TODO Auto-generated method stub sharePre = new OptsharepreInterface(StaffManagement.this); moduleBean = (CModuleBean) getIntent().getSerializableExtra( Constants.PARAM_MODULEBEAN); Serializable serializableExtra = getIntent().getSerializableExtra( Constants.PARAM_XZQH); if (null != serializableExtra) { if (serializableExtra instanceof AdminAreaBean) { AdminAreaBean new_name = (AdminAreaBean) serializableExtra; xzqh = new_name; } } dataList = new ArrayList<InnerManagementBean>(); } private void initWidgets() { // TODO Auto-generated method stub setContentView(R.layout.layout_tem_xlistview); backLeft = (Button) findViewById(R.id.backleft); actionRight = (Button) findViewById(R.id.actionright); etSearch = (EditText) findViewById(R.id.etSearch); addButton = (Button) findViewById(R.id.add_bottom); listView = (XListView) findViewById(R.id.listView); ivDeleteText = (ImageView) findViewById(R.id.ivDeleteText); addBtnLayout(addButton); } private void initListeners() { // TODO Auto-generated method stub listView.setXListViewListener(this); listView.setPullLoadEnable(true); listView.setOnScrollListener(this); backLeft.setOnClickListener(this); actionRight.setOnClickListener(this); ivDeleteText.setOnClickListener(this); erSearchListener(); // setFootHintText() ; } private void initUI() { // TODO Auto-generated method stub actionRight.setText("增加"); if(new CheckState_interface(StaffManagement.this) .checkConnection()) { toQuery(); } else { UIUtil.showMsg(StaffManagement.this, Constants.NETWORK_STATE_ERROR); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub switch (scrollState) { case OnScrollListener.SCROLL_STATE_FLING:// 滚动状态 addButton.setVisibility(View.GONE); break; case OnScrollListener.SCROLL_STATE_IDLE:// 空闲状态 addButton.setVisibility(View.GONE); break; case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:// 触摸后滚动 addButton.setVisibility(View.GONE); break; default: break; } } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.backleft: this.finish(); break; case R.id.actionright: if (tvAction == 0) { Intent intent = new Intent(); intent.setClass(StaffManagement.this, AddStaffActivity.class); startActivity(intent); } else { isFirst = true; startIndex = 0; name = etSearch.getText().toString().trim(); tvAction = 0; actionRight.setText("增加"); toQuery(); } break; case R.id.ivDeleteText: etSearch.setText(""); break; default: break; } } /** * 查询方法 */ private void toQuery() { // TODO Auto-generated method stub selectInnerManagermentKey.setStartIndex(startIndex); selectInnerManagermentKey.setSize(Constants.PAGE_SIZE); selectInnerManagermentKey.setOrgGuid(sharePre.getPres("guid")); selectInnerManagermentKey.setFastFind(name); selectInnerManagermentKey.setEmployeeType(-1); new QueryStaffAsyncTask(StaffManagement.this, isFirst, selectInnerManagermentKey, new TaskFinish()).execute(); isFirst = false; } /** * 异步类数据返回方法 * 返回数据后绑定列表适配器 * @author * */ private class TaskFinish implements TaskExcute { @Override public void getData(List<InnerManagementBean> result) { // TODO Auto-generated method stub if(null!=result&&result.size()>0) { dataList.addAll(result); startIndex += result.size(); totalCount = result.size(); } else { totalCount = 0; } inItListView(dataList); } } private void inItListView(List<InnerManagementBean> dataList) { // TODO Auto-generated method stub setFootHintText(); BaseAdapter adapter = new StaffAdapter(StaffManagement.this, dataList); listView.setAdapter(adapter); onLoad(); } /** * 更新列表底部信息 */ public void setFootHintText() { if (totalCount == 0 ) { listView.setListFooteState(ListFooteState.noData); } else if(totalCount % Constants.PAGE_SIZE != 0){ listView.setListFooteState(ListFooteState.noMoreData); }else { listView.setListFooteState(ListFooteState.nomal); } listView.showNoData(); } private void onLoad() { listView.setSelection(((int)(startIndex))-totalCount); listView.stopRefresh(); listView.stopLoadMore(); listView.setRefreshTime(DateUtil.getTimeStamp(new Date(), DateUtil.MM_DD_HH_MM_SS)); } @Override public void onRefresh() { // TODO Auto-generated method stub startIndex = 0; dataList = new ArrayList<InnerManagementBean>(); toQuery() ; } @Override public void onLoadMore() { // TODO Auto-generated method stub if (startIndex%Constants.PAGE_SIZE == 0) { toQuery(); } else { UIUtil.showMsg(StaffManagement.this, "没有更多"); onLoad(); } } private void erSearchListener() { etSearch.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub if (s.length() == 0) { ivDeleteText.setVisibility(View.INVISIBLE); actionRight.setText("增加"); tvAction = 0; } else { ivDeleteText.setVisibility(View.VISIBLE); actionRight.setText("搜索"); tvAction = 1; } } }); } @SuppressLint("NewApi") private void addBtnLayout(Button btn) { DisplayMetrics dmMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dmMetrics); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); params.height = dmMetrics.widthPixels / 10; params.width = dmMetrics.heightPixels / 11; params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); params.addRule(RelativeLayout.CENTER_VERTICAL); addButton.setLayoutParams(params); } /** * listView适配器 * @author * */ private class StaffAdapter extends BaseAdapter{ private Context context; private List<InnerManagementBean> dataList; private LayoutInflater mInflater; private InnerManagementBean bean ; public StaffAdapter(Context context, List<InnerManagementBean> dataList) { super(); this.context = context; this.dataList = dataList; mInflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return dataList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return dataList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; // convertView为null的时候初始化convertView。 if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.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(); } holder.tvTitleTop.setText(dataList.get(position).getUserName()); holder.tvTitleBootomLeft.setText(dataList.get(position).getContactNumber()); CooperativeGroupBean froupBean = dataList.get(position).getGroupBean(); holder.tvTitleBootomRight.setVisibility(View.GONE); if(null!=froupBean) { holder.tvTitleBootomRight.setText(null==froupBean.getName()?"":froupBean.getName()); } final int index = position; convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub bean = dataList.get(index); Intent intent = new Intent(); intent.setClass(context, AddStaffActivity.class); intent.putExtra("InnerManagementBean", bean); startActivity(intent); } }); return convertView; } public final class ViewHolder { private TextView tvTitleTop; private TextView tvTitleBootomLeft; private TextView tvTitleBootomRight; public void setTvTitleTop(TextView tvTitleTop) { this.tvTitleTop = tvTitleTop; } public void setTvTitleBootomLeft(TextView tvTitleBootomLeft) { this.tvTitleBootomLeft = tvTitleBootomLeft; } public void setTvTitleBootomRight(TextView tvTitleBootomRight) { this.tvTitleBootomRight = tvTitleBootomRight; } } } }