package cn.shangyu.gdxzExpert.activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Editable; import android.text.InputFilter; import android.text.Spanned; import android.text.TextPaint; import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.RadioButton; import android.widget.RadioGroup; 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.HospitalListBean; import cn.shangyu.gdxzExpert.http.OnCallBackFromNet; import cn.shangyu.gdxzExpert.utils.CommonUtil; import cn.shangyu.gdxzExpert.utils.LogUtil; import cn.shangyu.gdxzExpert.utils.StringUtil; 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/2. */ public class AddPractisingaddressActivity extends BaseActivity implements View.OnClickListener,OnCallBackFromNet,AdapterView.OnItemClickListener { private RadioGroup rg_group,rg_group1; private RadioButton rb_1,rb_2,rb_3,rb_4; private TextView bt_delete_visit; private Dialog dialog; private EditText et_addhospital,et_addhospital2,et_addhospital3; private static final int HOSPITALLIST = 1; private static final int ADDWORKPLACE = 2; private HospitalListBean fromJson; private ListView lv_plcae; private String flag = "dfasfsaf"; private String blackText; private String type; private String hospital_uuid; private String typeName; private String addhospita2; private String addhospita3; private String uuid; private boolean flag_is_onclic;//判断是否点击了列表 @Override public void setTitle() { top_title.setText("新增执业地点"); top_back_layout.setOnClickListener(this); 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_addpractisingaddress_big); } else { view = UIUtils.inflate(R.layout.activity_addpractisingaddress); } initView(view); initData(); initOnClick(); return view; } private void initData() { Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (intent!=null&&extras!=null){ top_title.setText("修改执业地点"); bt_delete_visit.setText("确定修改"); String hospital_name = intent.getExtras().getString("tv_hospital"); String office_name = intent.getExtras().getString("tv_department"); String location = intent.getExtras().getString("tv_address"); String Hospital_uuid = intent.getExtras().getString("Hospital_uuid"); hospital_uuid = Hospital_uuid; uuid = intent.getExtras().getString("uuid"); int type1 = intent.getExtras().getInt("tv_type"); type = type1+""; et_addhospital.setText(hospital_name); et_addhospital2.setText(office_name); et_addhospital3.setText(location); if(CommonUtil.BigModule()) { } else { TextPaint tp = et_addhospital.getPaint(); tp.setFakeBoldText(true); TextPaint tp2 = et_addhospital2.getPaint(); tp2.setFakeBoldText(true); TextPaint tp3 = et_addhospital3.getPaint(); tp3.setFakeBoldText(true); } Drawable icon_new = UIUtils.getDrawable(R.drawable.check_true); switch (type1){ case 1: typeName = "普通门诊"; rb_1.setChecked(true); rb_1.setBackground(icon_new); break; case 2: rb_2.setChecked(true); typeName = "专家门诊"; rb_2.setBackground(icon_new); break; case 3: rb_3.setChecked(true); typeName = "特需门诊"; rb_3.setBackground(icon_new); break; case 4: rb_4.setChecked(true); rb_4.setBackground(icon_new); typeName = "专科/专病门诊"; break; } } } private void initOnClick() { bt_delete_visit.setOnClickListener(this); if(CommonUtil.BigModule()) { rg_group1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { Drawable icon_new = UIUtils.getDrawable(R.drawable.check_true_big); Drawable icon_1 = UIUtils.getDrawable(R.drawable.shap_addpractisingaddress_normal); // AGP 8.0+ R.id 不再是 final 常量,不能用于 switch,改用 if-else if (checkedId == R.id.rb_4) { if(rb_4.isChecked()) { rg_group.clearCheck(); rb_1.setBackground(icon_1); rb_2.setBackground(icon_1); rb_3.setBackground(icon_1); rb_4.setBackground(icon_new); type = "4"; typeName = "专科/专病门诊"; } } } }); } rg_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { Drawable icon_new; if(CommonUtil.BigModule()) { icon_new = UIUtils.getDrawable(R.drawable.check_true_big); } else { icon_new = UIUtils.getDrawable(R.drawable.check_true); } Drawable icon_1 = UIUtils.getDrawable(R.drawable.shap_addpractisingaddress_normal); // AGP 8.0+ R.id 不再是 final 常量,不能用于 switch,改用 if-else if (checkedId == R.id.rb_1) { if(rb_1.isChecked()&&CommonUtil.BigModule()) { rg_group1.clearCheck(); } rb_1.setBackground(icon_new); rb_2.setBackground(icon_1); rb_3.setBackground(icon_1); rb_4.setBackground(icon_1); type = "1"; typeName = "普通门诊"; } else if (checkedId == R.id.rb_2) { if(rb_2.isChecked()&&CommonUtil.BigModule()) { rg_group1.clearCheck(); } rb_1.setBackground(icon_1); rb_2.setBackground(icon_new); rb_3.setBackground(icon_1); rb_4.setBackground(icon_1); type = "2"; typeName = "专家门诊"; } else if (checkedId == R.id.rb_3) { if(rb_3.isChecked()&&CommonUtil.BigModule()) { rg_group1.clearCheck(); } rb_1.setBackground(icon_1); rb_2.setBackground(icon_1); rb_3.setBackground(icon_new); rb_4.setBackground(icon_1); type = "3"; typeName = "特需门诊"; } else if (checkedId == R.id.rb_4) { rb_1.setBackground(icon_1); rb_2.setBackground(icon_1); rb_3.setBackground(icon_1); rb_4.setBackground(icon_new); type = "4"; typeName = "专科/专病门诊"; } } }); et_addhospital.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if(CommonUtil.BigModule()) { String s1 = s.toString().trim(); blackText = s1; if (flag.equals(s1)){ lv_plcae.setVisibility(View.GONE); }else if (s1==null||"".equals(s1)){ lv_plcae.setVisibility(View.GONE); }else if (!TextUtils.isEmpty(s1)){ Map param = new HashMap<>(); param.put("name",s1); sendJsonPostParamtoNetSignMD5(Url.hospitalList, param, HOSPITALLIST, AddPractisingaddressActivity.this); }else { lv_plcae.setVisibility(View.GONE); } } else { String s1 = s.toString().trim(); blackText = s1; TextPaint tp = et_addhospital.getPaint(); if (flag.equals(s1)){ lv_plcae.setVisibility(View.GONE); tp.setFakeBoldText(false); }else if (s1==null||"".equals(s1)){ lv_plcae.setVisibility(View.GONE); tp.setFakeBoldText(false); }else if (!TextUtils.isEmpty(s1)){ tp.setFakeBoldText(true); Map param = new HashMap<>(); param.put("name",s1); sendJsonPostParamtoNetSignMD5(Url.hospitalList, param, HOSPITALLIST, AddPractisingaddressActivity.this); }else { lv_plcae.setVisibility(View.GONE); tp.setFakeBoldText(false); } } } }); lv_plcae.setOnItemClickListener(this); et_addhospital2.addTextChangedListener(new TextWatcher() { boolean hint; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(CommonUtil.BigModule()) { } else { TextPaint tp = et_addhospital2.getPaint(); if(s.length() == 0) { // no text, hint is visible hint = true; tp.setFakeBoldText(false); } else { // no hint, text is visible hint = false; tp.setFakeBoldText(true); } } } @Override public void afterTextChanged(Editable s) { } }); et_addhospital3.addTextChangedListener(new TextWatcher() { boolean hint; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(CommonUtil.BigModule()) { } else { TextPaint tp = et_addhospital3.getPaint(); if(s.length() == 0) { // no text, hint is visible hint = true; tp.setFakeBoldText(false); } else { // no hint, text is visible hint = false; tp.setFakeBoldText(true); } } } @Override public void afterTextChanged(Editable s) { } }); } private void initView(View view) { rg_group = view.findViewById(R.id.rg_group); bt_delete_visit = view.findViewById(R.id.bt_delete_visit); rb_1 = view.findViewById(R.id.rb_1); rb_2 = view.findViewById(R.id.rb_2); rb_3 = view.findViewById(R.id.rb_3); rb_4 = view.findViewById(R.id.rb_4); if(CommonUtil.BigModule()) { rg_group1 = view.findViewById(R.id.rg_group1); } et_addhospital = view.findViewById(R.id.et_addhospital); et_addhospital2 = view.findViewById(R.id.et_addhospital2); et_addhospital3 = view.findViewById(R.id.et_addhospital3); lv_plcae = view.findViewById(R.id.lv_plcae); et_addhospital.setFilters(new InputFilter[]{new SpaceFilter()}); et_addhospital2.setFilters(new InputFilter[]{new SpaceFilter()}); et_addhospital3.setFilters(new InputFilter[]{new SpaceFilter()}); } /** * 禁止输入空格 * * @return */ public class SpaceFilter implements InputFilter { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { //返回null表示接收输入的字符,返回空字符串表示不接受输入的字符 if (source.equals(" ")) return ""; return null; } } @Override public LoadingPage.ResultState onLoad() { return LoadingPage.ResultState.STATE_SUCCESSED; } @Override protected void processClick(View v) { // AGP 8.0+ R.id 不再是 final 常量,不能用于 switch,改用 if-else int id = v.getId(); if (id == R.id.bt_delete_visit) { String addhospital = et_addhospital.getText().toString().trim(); addhospita2 = et_addhospital2.getText().toString().trim().replace(" ",""); addhospita3 = et_addhospital3.getText().toString().trim().replace(" ",""); if (TextUtils.isEmpty(addhospital)||StringUtil.isEmpty(hospital_uuid)) { ToastUtil.showToast("请输入您的医院"); } if (TextUtils.isEmpty(addhospita2)) { ToastUtil.showToast("请输入您的科室"); } if (TextUtils.isEmpty(addhospita3)) { ToastUtil.showToast("请填写您的地址"); } if (StringUtil.isEmpty(type)) { ToastUtil.showToast("请选择门诊类型"); } LayoutInflater inflater = LayoutInflater.from(this); RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.dialog_addpractisingaddress, null); dialog = new AlertDialog.Builder(AddPractisingaddressActivity.this).create(); TextView tv_infotitle = (TextView) layout.findViewById(R.id.tv_infotitle); TextView tv_name = (TextView) layout.findViewById(R.id.tv_name); TextView tv_tele = (TextView) layout.findViewById(R.id.tv_tele); TextView tv_address = (TextView) layout.findViewById(R.id.tv_address); TextView tv_addressdetail = (TextView) layout.findViewById(R.id.tv_addressdetail); TextView tv_point = (TextView) layout.findViewById(R.id.tv_point); TextView tv_baoyou = (TextView) layout.findViewById(R.id.tv_baoyou); Button btn_sure = (Button) layout.findViewById(R.id.btn_sure); Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel); tv_name.setText(addhospital); tv_tele.setText(addhospita2); tv_addressdetail.setText(addhospita3); tv_point.setText(typeName); 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(this); } else if (id == R.id.btn_sure) { dialog.dismiss(); Map param = new HashMap<>(); param.put("hospital_uuid",hospital_uuid); param.put("office_name",addhospita2); param.put("location",addhospita3); param.put("type",type); if (!StringUtil.isEmpty(uuid)){ param.put("uuid",uuid); sendJsonPostParamtoNetSignMD5(Url.editWorkPlace, param, ADDWORKPLACE, this); }else { sendJsonPostParamtoNetSignMD5(Url.addWorkPlace, param, ADDWORKPLACE, this); } } } @Override public void onCallbackFromThread(String resultJson) { } @Override public void onCallBackFromThread(String resultJson, int resultCode) { switch (resultCode){ case HOSPITALLIST: LogUtil.i("resultJson = "+resultJson); Gson gson = new Gson(); fromJson = gson.fromJson(resultJson, HospitalListBean.class); if (fromJson!=null&&"200".equals(fromJson.getCode())&&fromJson.getData().size()>0){ lv_plcae.setVisibility(View.VISIBLE); LogUtil.i("点击出现"); HospitalListAdapter adapter = new HospitalListAdapter(fromJson.getData()); lv_plcae.setAdapter(adapter); }else { lv_plcae.setVisibility(View.GONE); } break; case ADDWORKPLACE: Gson gson1 = new Gson(); BaseBean fromJson = gson1.fromJson(resultJson, BaseBean.class); if (fromJson!=null&&"200".equals(fromJson.code)){ hideSoftKeyboard(); Intent intent = new Intent(); setResult(2, intent); finish(); }else if ("Data Repeated".equals(fromJson.message)){ ToastUtil.showMessage("重复添加执业地点,请重新添加"); }else { ToastUtil.showMessage(fromJson.message); } break; } } @Override public void onItemClick(AdapterView parent, View view, int position, long id) { HospitalListBean.DataBean dataBean = fromJson.getData().get(position); flag = dataBean.getName(); hospital_uuid = dataBean.getUuid(); et_addhospital.setText(dataBean.getName()); et_addhospital.setSelection(et_addhospital.getText().toString().length()); flag_is_onclic = true; if(!CommonUtil.BigModule()) { TextPaint tp = et_addhospital.getPaint(); tp.setFakeBoldText(true); } lv_plcae.setVisibility(View.GONE); LogUtil.i("点击消失"); } class HospitalListAdapter extends BaseAdapter { private List data; public HospitalListAdapter(List data) { this.data = data; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh = null; if (convertView == null) { if(CommonUtil.BigModule()) { convertView = UIUtils.inflate(R.layout.item_hospital_item_big); } else { convertView = UIUtils.inflate(R.layout.item_hospital_item); } vh = new ViewHolder(); vh.tv_name = convertView.findViewById(R.id.tv_name); vh.tv_name1 = convertView.findViewById(R.id.tv_name1); vh.tv_name2 = convertView.findViewById(R.id.tv_name2); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } String name = data.get(position).getName(); String[] split = name.split(blackText); if (StringUtil.isEmpty(blackText)){ lv_plcae.setVisibility(View.GONE); }else if (split.length>0&&StringUtil.isEmpty(split[0])){ TextPaint tp = vh.tv_name.getPaint(); TextPaint tp1 = vh.tv_name1.getPaint(); TextPaint tp2 = vh.tv_name2.getPaint(); tp.setFakeBoldText(true); tp1.setFakeBoldText(false); tp2.setFakeBoldText(false); vh.tv_name.setText(blackText); if (split.length>1){ vh.tv_name1.setText(split[1]); } }else if (split.length==1){ TextPaint tp = vh.tv_name.getPaint(); TextPaint tp1 = vh.tv_name1.getPaint(); TextPaint tp2 = vh.tv_name2.getPaint(); tp1.setFakeBoldText(true); tp2.setFakeBoldText(false); tp.setFakeBoldText(false); vh.tv_name1.setText(blackText); vh.tv_name.setText(split[0]); }else if (split.length>0){ TextPaint tp = vh.tv_name.getPaint(); TextPaint tp1 = vh.tv_name1.getPaint(); TextPaint tp2 = vh.tv_name2.getPaint(); tp1.setFakeBoldText(true); tp2.setFakeBoldText(false); tp.setFakeBoldText(false); vh.tv_name1.setText(blackText); vh.tv_name.setText(split[0]); if (split.length>1){ vh.tv_name2.setText(split[1]); } } // return convertView; } public class ViewHolder { public TextView tv_name,tv_name1,tv_name2; } } }