package cn.shangyu.gdxzExpert.activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.text.TextPaint; import android.text.format.DateUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.Window; import android.view.WindowManager; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.HashMap; import java.util.List; import java.util.Map; import cn.shangyu.gdxzExpert.R; import cn.shangyu.gdxzExpert.base.BaseActivity; import cn.shangyu.gdxzExpert.bean.BaseBean; import cn.shangyu.gdxzExpert.bean.ListWorkPlaceBean; import cn.shangyu.gdxzExpert.http.OnCallBackFromNet; import cn.shangyu.gdxzExpert.pulltorefreshview.ILoadingLayout; import cn.shangyu.gdxzExpert.pulltorefreshview.PullToRefreshBase; import cn.shangyu.gdxzExpert.pulltorefreshview.PullToRefreshListView; import cn.shangyu.gdxzExpert.ui.CustomProgressDialog; import cn.shangyu.gdxzExpert.utils.CommonUtil; import cn.shangyu.gdxzExpert.utils.ToastUtil; import cn.shangyu.gdxzExpert.utils.UIUtils; import cn.shangyu.gdxzExpert.utils.Url; import cn.shangyu.gdxzExpert.widget.LoadingPage; /** * Created by wangchengxin on 2019/1/4. */ public class PractiseAddressManagementActivity extends BaseActivity implements OnCallBackFromNet{ private TextView btn_add; private PullToRefreshListView lv_item_case; public static final int LISTWORKPLACE = 1; private ListWorkPlaceBean fromJson; private LinearLayout ll_empty; private CustomProgressDialog pd; public static int REQUESTCODE = 1; public static int DELETEPLACE = 2; @Override public void setTitle() { top_title.setText("执业地点管理"); if(CommonUtil.BigModule()) { top_title.setTextSize(23); } } @Override public View onCreateSuccessedView() { ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init(); View view; if(CommonUtil.BigModule()) { view = UIUtils.inflate(R.layout.activity_practiseaddressmanagement_big); } else { view = UIUtils.inflate(R.layout.activity_practiseaddressmanagement); } initView(view); initOnClick(); initData(); return view; } private void initData() { Map param = new HashMap<>(); sendJsonPostParamtoNetSignMD5(Url.listWorkPlace, param, LISTWORKPLACE, this); } private void initOnClick() { btn_add.setOnClickListener(this); } private void initView(View view) { btn_add = view.findViewById(R.id.btn_add); lv_item_case = view.findViewById(R.id.lv_item_case); ll_empty = (LinearLayout) View.inflate(UIUtils.getContext(),R.layout.layout_empty, null); TextView tv_empty_msg = ll_empty.findViewById(R.id.tv_empty_msg); tv_empty_msg.setText("暂无执业地点"); if(CommonUtil.BigModule()) { ll_empty.setBackgroundColor(getResources().getColor(R.color.big_bg)); tv_empty_msg.setTextSize(18); } else { ll_empty.setBackgroundColor(Color.parseColor("#e4e4e4")); } lv_item_case.setMode(PullToRefreshBase.Mode.DISABLED); pd = new CustomProgressDialog(this, "请稍候"); pd.show(); initListViewTipText(); lv_item_case.setEmptyView(ll_empty); } @Override public LoadingPage.ResultState onLoad() { return LoadingPage.ResultState.STATE_SUCCESSED; } @Override protected void processClick(View v) { switch (v.getId()){ case R.id.btn_add: Intent intent = new Intent(PractiseAddressManagementActivity.this, AddPractisingaddressActivity.class); startActivityForResult(intent,REQUESTCODE); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == 2){ if (requestCode==REQUESTCODE){ initData(); } } } /** * 初始化列表刷新时的提示文本 */ private void initListViewTipText() { lv_item_case.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() { @Override public void onPullDownToRefresh(PullToRefreshBase refreshView) { // TODO Auto-generated method stub if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { setUpdateTime(refreshView); refreshItems(); } else { ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); } } @Override public void onPullUpToRefresh(PullToRefreshBase refreshView) { // TODO Auto-generated method stub if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { setUpdateTime(refreshView); geneItems(); } else { ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); } } }); // TODO Auto-generated method stub // 设置上拉刷新文本 ILoadingLayout startLabels = lv_item_case .getLoadingLayoutProxy(true, false); startLabels.setPullLabel("下拉刷新..."); startLabels.setReleaseLabel("放开立即刷新..."); startLabels.setRefreshingLabel("正在刷新..."); // 设置下拉刷新文本 ILoadingLayout endLabels = lv_item_case.getLoadingLayoutProxy(false, true); endLabels.setPullLabel("上拉加载更多..."); endLabels.setReleaseLabel("放开加载更多..."); endLabels.setRefreshingLabel("正在加载..."); } private void refreshItems() { // TODO Auto-generated method stub // getData(); } private void geneItems() { // TODO Auto-generated method stub // getData(); } // 设置更新时间 protected void setUpdateTime(PullToRefreshBase refreshView) { // TODO Auto-generated method stub String label = DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL); refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label); } @Override public void onCallbackFromThread(String resultJson) { } @Override public void onCallBackFromThread(String resultJson, int resultCode) { switch (resultCode){ case LISTWORKPLACE: pd.dismiss(); Gson gson = new Gson(); fromJson = gson.fromJson(resultJson, ListWorkPlaceBean.class); if (fromJson!=null&&"200".equals(fromJson.getCode())){ PractiseAddressManagementAdapter practiseAddressManagementAdapter = new PractiseAddressManagementAdapter(PractiseAddressManagementActivity.this,fromJson.getList()); lv_item_case.setAdapter(practiseAddressManagementAdapter); } break; case 2: Gson gson1 = new Gson(); BaseBean fromJson = gson1.fromJson(resultJson, BaseBean.class); if (fromJson!=null&&"200".equals(fromJson.code)){ initData(); ToastUtil.showMessage("删除成功"); }else { ToastUtil.showMessage(fromJson.message); } break; } } class PractiseAddressManagementAdapter extends BaseAdapter { private Context context; private List list; public PractiseAddressManagementAdapter(Context context, List list) { this.context = context; this.list = list; } @Override public int getCount() { return list!=null&&list.size()>0?list.size():0; } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { PractiseAddressManagementAdapter.ViewHolder vh = null; if (convertView == null) { if(CommonUtil.BigModule()) { convertView = UIUtils.inflate(R.layout.item_practisingaddress_big); } else { convertView = UIUtils.inflate(R.layout.item_practisingaddress); } vh = new PractiseAddressManagementAdapter.ViewHolder(); vh.tv_hospital = convertView.findViewById(R.id.tv_hospital); vh.tv_department = convertView.findViewById(R.id.tv_department); vh.tv_address =convertView.findViewById(R.id.tv_address); vh.tv_type = convertView.findViewById(R.id.tv_type); vh.tv_type1 = convertView.findViewById(R.id.tv_type1); vh.tv_edit = convertView.findViewById(R.id.tv_edit); vh.tv_delete = convertView.findViewById(R.id.tv_delete); vh.iv_edit = convertView.findViewById(R.id.iv_edit); vh.iv_delete = convertView.findViewById(R.id.iv_delete); convertView.setTag(vh); } else { vh = (PractiseAddressManagementAdapter.ViewHolder) convertView.getTag(); } final String hospital_name = list.get(position).getHospital_name(); final String office_name = list.get(position).getOffice_name(); final String location = list.get(position).getLocation(); vh.tv_hospital.setText(hospital_name); vh.tv_department.setText(office_name); switch (list.get(position).getType()){ case 1: vh.tv_type.setText("普通门诊"); vh.tv_type1.setText("普通门诊"); break; case 2: vh.tv_type.setText("专家门诊"); vh.tv_type1.setText("专家门诊"); break; case 3: vh.tv_type.setText("特需门诊"); vh.tv_type1.setText("特需门诊"); break; case 4: vh.tv_type.setText("专科/专病门诊"); vh.tv_type1.setText("专科/专病门诊"); break; } ViewTreeObserver vto = vh.tv_address.getViewTreeObserver(); final ViewHolder finalVh = vh; vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { TextPaint mTextPaint = finalVh.tv_address.getPaint(); mTextPaint.setTextSize(finalVh.tv_address.getTextSize()); int mTextViewWidth = (int) mTextPaint.measureText(location); finalVh.tv_address.setText(location); if (mTextViewWidth> finalVh.tv_address.getWidth()||mTextViewWidth>800){ finalVh.tv_type.setVisibility(View.GONE); finalVh.tv_type1.setVisibility(View.VISIBLE); }else { finalVh.tv_type.setVisibility(View.VISIBLE); finalVh.tv_type1.setVisibility(View.GONE); } } }); vh.iv_delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isDelete(position); } }); vh.tv_delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isDelete(position); } }); vh.iv_edit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isEdit(position); } }); vh.tv_edit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isEdit(position); } }); return convertView; } private void isEdit(final int position) { LayoutInflater inflater = LayoutInflater.from(context); RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.dialog_isdelete, null); final Dialog dialog = new AlertDialog.Builder(context).create(); Button btn_sure = layout.findViewById(R.id.btn_sure); TextView tv_infotitle = layout.findViewById(R.id.tv_infotitle); TextView tv_infotitle1 = layout.findViewById(R.id.tv_infotitle1); Button btn_cancel = layout.findViewById(R.id.btn_cancel); tv_infotitle.setText("修改提示"); tv_infotitle1.setText("您确定修改此条信息吗?"); dialog.show(); Window window =dialog.getWindow(); // window.setGravity(Gravity.CENTER); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; window.setAttributes(layoutParams); dialog.getWindow().setContentView(layout); btn_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub dialog.dismiss(); } }); btn_sure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(PractiseAddressManagementActivity.this, AddPractisingaddressActivity.class); intent.putExtra("tv_hospital",list.get(position).getHospital_name()); intent.putExtra("tv_department",list.get(position).getOffice_name()); intent.putExtra("tv_address",list.get(position).getLocation()); intent.putExtra("Hospital_uuid",list.get(position).getHospital_uuid()); intent.putExtra("uuid",list.get(position).getUuid()); intent.putExtra("tv_type",list.get(position).getType()); startActivityForResult(intent,REQUESTCODE); dialog.dismiss(); } }); } private void isDelete(final int position) { LayoutInflater inflater = LayoutInflater.from(context); RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.dialog_isdelete, null); final Dialog dialog = new AlertDialog.Builder(context).create(); Button btn_sure = (Button) layout.findViewById(R.id.btn_sure); Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel); dialog.show(); Window window =dialog.getWindow(); // window.setGravity(Gravity.CENTER); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; window.setAttributes(layoutParams); dialog.getWindow().setContentView(layout); btn_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub dialog.dismiss(); } }); btn_sure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Map param = new HashMap<>(); param.put("uuid",list.get(position).getUuid()); sendJsonPostParamtoNetSignMD5(Url.deleteWorkPlace, param, DELETEPLACE, PractiseAddressManagementActivity.this); dialog.dismiss(); } }); } public class ViewHolder { public TextView tv_hospital, tv_department, tv_address,tv_type,tv_edit,tv_delete,tv_type1; public ImageView iv_edit,iv_delete; } } }