Files
expert-app/app/src/main/java/cn/shangyu/gdxzExpert/activity/PractiseAddressManagementActivity.java
T
2025-11-18 15:12:24 +08:00

460 lines
18 KiB
Java

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<String, String> 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<ListWorkPlaceBean.ListBean> list;
public PractiseAddressManagementAdapter(Context context, List<ListWorkPlaceBean.ListBean> 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<String, String> 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;
}
}
}