网上挂号V1.0之开始挂号
来源:互联网 发布:怎样在淘宝查注册时间 编辑:程序博客网 时间:2024/06/08 12:50
网上预约挂号系统
上一篇链接 网上挂号V1.0
现在来进行挂号和填写患者信息,而且每次只能绑定一个患者,更新每个医生每天每个时间段对应的号数,并设置满号状态。
说干就干。
挂号和填写患者信息内容
(a)日期控件是github上的库,导入
compile ‘com.github.flavienlaurent.datetimepicker:library:0.0.2’
可以设置的日历 年范围
private static final int MAX_YEAR = 2037;
private static final int MIN_YEAR = 1902;
基本使用,在获取的月份的值是当前月份 - 1,所以我就自己加了1,嘻嘻
public static final String DATEPICKER_TAG = "datepicker"; private void initDate() { final Calendar calendar = Calendar.getInstance(); final DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(this, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), false); findViewById(R.id.dateButton).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { datePickerDialog.setYearRange(1903, 2028); datePickerDialog.show(getSupportFragmentManager(), DATEPICKER_TAG); } }); } @Override public void onDateSet(DatePickerDialog datePickerDialog, int year, int month, int day) { int truemonth = month + 1; Toast.makeText(MainActivity.this, "new date:" + year + "-" + truemonth + "-" + day, Toast.LENGTH_LONG).show(); }
(b)下拉选择框控件,修改网上的源码 源码博客地址
一开始我写的接口放的地方不对,老是无法实现,最后就直接对listview的item点击事件中调用自己写的接口方法,居然就可以了
public interface MyItemClickListener { void onItemClick(View view, int postion); } private MyItemClickListener mItemClickListener = null; public void setOnItemClickListener(MyItemClickListener listener) { this.mItemClickListener = listener; }
在点击listView的每个item时拿到对应的数据
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String text = dataList.get(position); editText.setText(text); if(mItemClickListener != null){ mItemClickListener.onItemClick(view,position); }else { mItemClickListener.onItemClick(view,0); } closePopWindow(); } });
(c)工具类,判断手机号,身份证(最后一位是小写x就可以通过,大写X就不可以)
public class Phoneutil { public static boolean isMobileNO(String mobiles) { Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"); Matcher m = p.matcher(mobiles); return m.matches(); }}
网上的源码 忘了保存链接了
public class IDutil { /** * 功能:身份证的有效验证 * * @param IDStr * 身份证号 * @return 有效:返回"" 无效:返回String信息 * @throws ParseException */ @SuppressWarnings("unchecked") public static String IDCardValidate(String IDStr) throws ParseException { String errorInfo = "";// 记录错误信息 String[] ValCodeArr = { "1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2" }; String[] Wi = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2" }; String Ai = ""; // ================ 号码的长度 15位或18位 ================ if (IDStr.length() != 15 && IDStr.length() != 18) { errorInfo = "身份证号码长度应该为15位或18位。"; return errorInfo; } // =======================(end)======================== // ================ 数字 除最后以为都为数字 ================ if (IDStr.length() == 18) { Ai = IDStr.substring(0, 17); } else if (IDStr.length() == 15) { Ai = IDStr.substring(0, 6) + "19" + IDStr.substring(6, 15); } if (isNumeric(Ai) == false) { errorInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。"; return errorInfo; } // =======================(end)======================== // ================ 出生年月是否有效 ================ String strYear = Ai.substring(6, 10);// 年份 String strMonth = Ai.substring(10, 12);// 月份 String strDay = Ai.substring(12, 14);// 月份 if (isDate(strYear + "-" + strMonth + "-" + strDay) == false) { errorInfo = "身份证生日无效。"; return errorInfo; } GregorianCalendar gc = new GregorianCalendar(); SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); try { if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150 || (gc.getTime().getTime() - s.parse( strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) { errorInfo = "身份证生日不在有效范围。"; return errorInfo; } } catch (NumberFormatException e) { e.printStackTrace(); } catch (java.text.ParseException e) { e.printStackTrace(); } if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) { errorInfo = "身份证月份无效"; return errorInfo; } if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) { errorInfo = "身份证日期无效"; return errorInfo; } // =====================(end)===================== // ================ 地区码时候有效 ================ Hashtable h = GetAreaCode(); if (h.get(Ai.substring(0, 2)) == null) { errorInfo = "身份证地区编码错误。"; return errorInfo; } // ============================================== // ================ 判断最后一位的值 ================ int TotalmulAiWi = 0; for (int i = 0; i < 17; i++) { TotalmulAiWi = TotalmulAiWi + Integer.parseInt(String.valueOf(Ai.charAt(i))) * Integer.parseInt(Wi[i]); } int modValue = TotalmulAiWi % 11; String strVerifyCode = ValCodeArr[modValue]; Ai = Ai + strVerifyCode; if (IDStr.length() == 18) { if (Ai.equals(IDStr) == false) { errorInfo = "身份证无效,不是合法的身份证号码"; return errorInfo; } } else { return ""; } // =====================(end)===================== return ""; } /** * 功能:设置地区编码 * * @return Hashtable 对象 */ @SuppressWarnings("unchecked") private static Hashtable GetAreaCode() { Hashtable hashtable = new Hashtable(); hashtable.put("11", "北京"); hashtable.put("12", "天津"); hashtable.put("13", "河北"); hashtable.put("14", "山西"); hashtable.put("15", "内蒙古"); hashtable.put("21", "辽宁"); hashtable.put("22", "吉林"); hashtable.put("23", "黑龙江"); hashtable.put("31", "上海"); hashtable.put("32", "江苏"); hashtable.put("33", "浙江"); hashtable.put("34", "安徽"); hashtable.put("35", "福建"); hashtable.put("36", "江西"); hashtable.put("37", "山东"); hashtable.put("41", "河南"); hashtable.put("42", "湖北"); hashtable.put("43", "湖南"); hashtable.put("44", "广东"); hashtable.put("45", "广西"); hashtable.put("46", "海南"); hashtable.put("50", "重庆"); hashtable.put("51", "四川"); hashtable.put("52", "贵州"); hashtable.put("53", "云南"); hashtable.put("54", "西藏"); hashtable.put("61", "陕西"); hashtable.put("62", "甘肃"); hashtable.put("63", "青海"); hashtable.put("64", "宁夏"); hashtable.put("65", "新疆"); hashtable.put("71", "台湾"); hashtable.put("81", "香港"); hashtable.put("82", "澳门"); hashtable.put("91", "国外"); return hashtable; } /** * 功能:判断字符串是否为数字 * * @param str * @return */ private static boolean isNumeric(String str) { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(str); if (isNum.matches()) { return true; } else { return false; } } /** * 功能:判断字符串是否为日期格式 * * @param strDate * @return */ public static boolean isDate(String strDate) { Pattern pattern = Pattern .compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"); Matcher m = pattern.matcher(strDate); if (m.matches()) { return true; } else { return false; } }}
(d)SelectPatientActivity、AddPatientActivity
SharedPreferences获取绑定的患者,重新挂号sp里面对应的值也随着改变
public class SelectPatientActivity extends AppCompatActivity { @BindView(R.id.sp_money) TextView mmoney; @BindView(R.id.sp_keshi) TextView mks; @BindView(R.id.sp_name) TextView mname; @BindView(R.id.sp_time) TextView mtime; @BindView(R.id.add_none) TextView mnone; @BindView(R.id.add) TextView madd; @BindView(R.id.sp_toolbar) Toolbar tb; @BindView(patient) LinearLayout ll; @BindView(R.id.p_name) TextView mpname; @BindView(R.id.p_card) TextView mpcard; @BindView(R.id.btn_hao) Button mhao; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_select_patient); ButterKnife.bind(this); initToolbar(); getData(); initSelected(); } /** * 设置绑定的患者 */ private void initSelected() { SharedPreferences sp = getSharedPreferences("patient",MODE_PRIVATE); String id = sp.getString("pid",""); String name = sp.getString("pname",""); String card = sp.getString("pcard",""); if(!id.isEmpty()){ mnone.setVisibility(View.GONE); ll.setVisibility(View.VISIBLE); mpcard.setText(card); mpname.setText(name); }else { mnone.setVisibility(View.VISIBLE); ll.setVisibility(View.GONE); } } /** * 设置页面数据 */ private void getData() { Intent intent = getIntent(); String money = intent.getStringExtra("money"); String mbdname = intent.getStringExtra("mbdname"); String mdname = intent.getStringExtra("mdname"); mmoney.setText(money); mks.setText(mbdname + " - " + mdname); String date = intent.getStringExtra("date"); TimeDuan timeduan = (TimeDuan) intent.getSerializableExtra("timeduan"); Doctor doctor = (Doctor) intent.getSerializableExtra("doctor"); String end = timeduan.getT_start(); String start = timeduan.getT_end(); mname.setText(doctor.getD_name()); mtime.setText(date+" " + start + "-" + end); } List<String> weekid=new ArrayList<>(); @OnClick(R.id.btn_hao) void guahao(){ Intent intent = getIntent(); String msday = intent.getStringExtra("day"); String mdayid = intent.getStringExtra("dayid"); Doctor doctor = (Doctor) intent.getSerializableExtra("doctor"); SharedPreferences sp = getSharedPreferences("patient",MODE_PRIVATE); String id = sp.getString("pid",""); Patient patient = new Patient(); patient.setObjectId(id); String mrelation = sp.getString("pbr",""); //挂号 new Haoutil(SelectPatientActivity.this).addAppoint(patient, doctor, msday, mdayid,mrelation); //更新两张表 new Haoutil(SelectPatientActivity.this).updateHao(msday,mdayid); new Haoutil(SelectPatientActivity.this).updateWeek(msday,doctor.getObjectId()); Log.i("Week更新挂号", "id" + weekid);// Intent mintent = new Intent(SelectPatientActivity.this,PayActivity.class);// startActivity(mintent); } /** * 初始化toolbar */ private void initToolbar() { tb.setTitle("选择就诊人"); setSupportActionBar(tb); //关键下面两句话,设置了回退按钮,及点击事件的效果 getSupportActionBar().setDisplayHomeAsUpEnabled(true); tb.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } @OnClick(R.id.add) void addP(){ Intent intent = new Intent(SelectPatientActivity.this,AddPatientActivity.class); startActivityForResult(intent, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 1: if (resultCode == RESULT_OK) { //接收下一个活动返回数据,设置给已绑定的患者 String name = data.getStringExtra("pname"); String card = data.getStringExtra("pcard"); mnone.setVisibility(View.GONE); ll.setVisibility(View.VISIBLE); mpcard.setText(card); mpname.setText(name); } break; default: } }}
查询数据的工具类 Haoutil(插入和更新),可能内容会有点长。。
/** * 返回一个医生的一周排班表 * @return */ public static Observable<List<Week>> getDWeek(final String did){ return Observable.create(new Observable.OnSubscribe<List<Week>>() { @Override public void call(final Subscriber<? super List<Week>> subscriber) { if(!subscriber.isUnsubscribed()){ BmobQuery<Week> query = new BmobQuery<Week>(); Doctor doctor = new Doctor(); doctor.setObjectId(did); query.addWhereEqualTo("w_doctor",new BmobPointer(doctor)); query.setCachePolicy(BmobQuery.CachePolicy.CACHE_ELSE_NETWORK); // 先从缓存获取数据,如果没有,再从网络获取。 Observable<List<Week>> observable = query.findObjectsObservable(Week.class); observable.subscribe(new Subscriber<List<Week>>() { @Override public void onCompleted() { } @Override public void onError(Throwable throwable) { } @Override public void onNext(List<Week> weeks) { subscriber.onNext(weeks); } }); } } }); }
public class Haoutil { private static Context mContext; public Haoutil(Context context) { mContext = context; } public static void addAppoint(Patient patient, Doctor doctor, String day, String dayid, String relation) { Appointment appointment = new Appointment(); appointment.setA_name(patient); appointment.setA_day(day); appointment.setA_dayid(dayid); appointment.setA_doctor(doctor); appointment.setA_relation(relation); appointment.save(new SaveListener<String>() { @Override public void done(String objectId, BmobException e) { if (e == null) { Toast.makeText(mContext, "挂号成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(mContext, "挂号失败,请重新确认挂号信息", Toast.LENGTH_SHORT).show(); Log.i("bmob", "失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } public static void updateHao(String day, String id) { switch (day) { case "周一": updateMon(id); break; case "周二": updateTue(id); break; case "周三": updateWeds(id); break; case "周四": updateThur(id); break; case "周五": updateFri(id); break; case "周六": updateSat(id); break; case "周日": updateSun(id); break; } } private static void updateMon(String id) { Mon mon = new Mon(); //当天某一行记录 mon.increment("m_count", -1); mon.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } private static void updateTue(String id) { Tues tues = new Tues(); //当天某一行记录 tues.increment("t_count", -1); tues.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } private static void updateWeds(String id) { Weds weds = new Weds(); //当天某一行记录 weds.increment("w_count", -1); weds.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } private static void updateThur(String id) { Thur thur = new Thur(); //当天某一行记录 thur.increment("th_count", -1); thur.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } private static void updateFri(String id) { Fri fri = new Fri(); //当天某一行记录 fri.increment("f_count", -1); fri.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } private static void updateSat(String id) { Sat sat = new Sat(); //当天某一行记录 sat.increment("s_count", -1); sat.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } private static void updateSun(String id) { Sun sun = new Sun(); //当天某一行记录 sun.increment("su_count", -1); sun.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("bmob更新挂号", "更新成功"); } else { Log.i("bmob更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } public static void updateWeek(String day, String did) { Week week = new Week(); switch (day) { case "周一": week.increment("w_c1", -1); break; case "周二": week.increment("w_c2", -1); break; case "周三": week.increment("w_c3", -1); break; case "周四": week.increment("w_c4", -1); break; case "周五": week.increment("w_c5", -1); break; case "周六": week.increment("w_c6", -1); break; case "周日": week.increment("w_c7", -1); break; } //查询该医生一周的情况,并更改对应的值 new Weekutil().getDWeek(did).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<Week>>() { @Override public void onCompleted() { } @Override public void onError(Throwable throwable) { } @Override public void onNext(List<Week> weeks) { for (Week week : weeks) { String id = week.getObjectId(); week.update(id, new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { Log.i("Week更新挂号", "更新成功"); } else { Log.i("Week更新挂号", "更新失败:" + e.getMessage() + "," + e.getErrorCode()); } } }); } } }); }}
实现添加患者,然后返回上一个活动,设置绑定的患者
public class AddPatientActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener{ public static final String DATEPICKER_TAG = "datepicker"; @BindView(R.id.br) XCDropDownListView br; @BindView(R.id.sfz) XCDropDownListView sfz; @BindView(R.id.sp_name) EditText etname; @BindView(R.id.sp_phone) EditText etphone; @BindView(R.id.sp_idcard) EditText etidcard; @BindView(R.id.sp_card) EditText etcard; @BindView(R.id.btn_commit) Button commit; @BindView(R.id.sp_date) TextView tvdate; @BindView(R.id.add_toolbar) Toolbar tb; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_patient); ButterKnife.bind(this); initToolbar(); initXCDropDownListView(); initClick(); } /** * 初始化toolbar */ private void initToolbar() { tb.setTitle("添加就诊人"); setSupportActionBar(tb); //关键下面两句话,设置了回退按钮,及点击事件的效果 getSupportActionBar().setDisplayHomeAsUpEnabled(true); tb.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } String name; String phone; String idcard; String card; @OnClick(R.id.btn_commit) void commit(){ //获取键盘输入 name = etname.getText().toString(); phone = etphone.getText().toString(); idcard = etidcard.getText().toString(); card = etcard.getText().toString(); if (name.isEmpty()){ Toast.makeText(AddPatientActivity.this,"名字不能为空",Toast.LENGTH_SHORT).show(); }else if(phone.isEmpty()){ Toast.makeText(AddPatientActivity.this,"手机号不能为空",Toast.LENGTH_SHORT).show(); }else if(idcard.isEmpty()){ Toast.makeText(AddPatientActivity.this,"身份证不能为空",Toast.LENGTH_SHORT).show(); }else if(card.isEmpty()){ Toast.makeText(AddPatientActivity.this,"诊疗卡号不能为空",Toast.LENGTH_SHORT).show(); }else if(tvdate.getText().equals("请选择")){ Toast.makeText(AddPatientActivity.this,"出生日期必须选择",Toast.LENGTH_SHORT).show(); }else{ if (!Phoneutil.isMobileNO(phone)){ Toast.makeText(AddPatientActivity.this,"输入的手机号码有误",Toast.LENGTH_SHORT).show(); } IDutil cc = new IDutil(); String isID = null; try { isID = cc.IDCardValidate(idcard); } catch (ParseException e) { e.printStackTrace(); } if(!isID.isEmpty()){ Toast.makeText(AddPatientActivity.this,""+isID,Toast.LENGTH_SHORT).show(); } } findPatient(Integer.parseInt(card)); Log.i("数据",date+name+phone+idcard+card+mbr+msfz+""+mPatients); } String mbr = "本人"; String msfz = "身份证"; /** * 两人下拉框的回调 */ private void initClick() { br.setOnItemClickListener(new XCDropDownListView.MyItemClickListener() { @Override public void onItemClick(View view, int postion) { String br = brlist.get(postion); mbr = brlist.get(postion);// Toast.makeText(AddPatientActivity.this,""+br,Toast.LENGTH_SHORT).show(); Log.i("数据",br+""); } }); sfz.setOnItemClickListener(new XCDropDownListView.MyItemClickListener() { @Override public void onItemClick(View view, int postion) { String sfz = sfzlist.get(postion); msfz = sfzlist.get(postion);// Toast.makeText(AddPatientActivity.this,""+sfz,Toast.LENGTH_SHORT).show(); Log.i("数据",sfz+""); } }); } ArrayList<String> brlist = new ArrayList<String>(); ArrayList<String> sfzlist = new ArrayList<String>(); /** * 初始化下拉框数据 */ private void initXCDropDownListView() { brlist.add(0,"本人"); brlist.add(1,"父母"); brlist.add(2,"子女"); brlist.add(3,"兄弟"); brlist.add(4,"姐妹"); brlist.add(5,"伴侣"); brlist.add(6,"其他"); sfzlist.add(0,"身份证"); sfzlist.add(1,"港澳台身份证"); sfzlist.add(2,"护照"); br.setItemsData(brlist); sfz.setItemsData(sfzlist); } /** * 日历控件 */ @OnClick(R.id.sp_date) void initDate() { final Calendar calendar = Calendar.getInstance(); final DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(this, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), false); datePickerDialog.setYearRange(1903, 2028); datePickerDialog.show(getSupportFragmentManager(), DATEPICKER_TAG); } String date; @Override public void onDateSet(DatePickerDialog datePickerDialog, int year, int month, int day) { int truemonth = month + 1; date = year + "-" + truemonth + "-" + day; tvdate.setTextColor(getResources().getColor(R.color.main_color)); tvdate.setText(date); Toast.makeText(AddPatientActivity.this, "new date:" + date, Toast.LENGTH_LONG).show(); } List<Patient> mPatients = new ArrayList<>(); private void findPatient(final int card){ new Patientutil().getPatient(card).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<Patient>>() { @Override public void onCompleted() { } @Override public void onError(Throwable throwable) { Log.i("填入数据",""+throwable); if(throwable != null){ Toast.makeText(AddPatientActivity.this,"找不到此患者,请到医院办理诊疗卡",Toast.LENGTH_SHORT).show(); clearText(); } } @Override public void onNext(List<Patient> patients) { for (Patient patient : patients) { String mname = patient.getP_name(); String midcard = patient.getP_idcard(); String mbirth = patient.getP_birth(); String pid = patient.getObjectId(); Log.i("填入数据",""+name+mname+idcard+midcard+date); //第一次为空 SharedPreferences sp = getSharedPreferences("patient",MODE_PRIVATE); String id = sp.getString("pid",""); if(id.isEmpty() || !id.equals(pid)){ if(!name.equals(mname)){ Toast.makeText(AddPatientActivity.this,"您的姓名信息与在医院记录的信息不一致,请重新填写",Toast.LENGTH_SHORT).show(); }else if(!idcard.equals(midcard)){ Toast.makeText(AddPatientActivity.this,"您的身份证信息与在医院记录的信息不一致,请重新填写",Toast.LENGTH_SHORT).show(); }else if(!date.equals(mbirth)){ Toast.makeText(AddPatientActivity.this,"您的出生日期信息与在医院记录的信息不一致,请重新填写",Toast.LENGTH_SHORT).show(); }else { Intent intent = new Intent(); intent.putExtra("pname", mname); intent.putExtra("pcard", String.valueOf(card)); setResult(RESULT_OK, intent); sp.edit().putString("pid",pid).commit(); sp.edit().putString("pname",mname).commit(); sp.edit().putString("pcard", String.valueOf(card)).commit(); sp.edit().putString("pbr", mbr).commit(); Toast.makeText(AddPatientActivity.this,"您已经成功绑定该患者",Toast.LENGTH_SHORT).show(); finish(); } }else { Toast.makeText(AddPatientActivity.this,"您已经绑定该患者,请勿重复绑定",Toast.LENGTH_SHORT).show(); clearText(); } } } }); } private void clearText() { etname.setText(""); etidcard.setText(""); etphone.setText(""); etcard.setText(""); tvdate.setText("请选择"); } public void clear(){ SharedPreferences pref = getSharedPreferences("patient",MODE_PRIVATE); if(pref!=null){ pref.edit().clear().commit(); } }}
- 更新满号的状态、在一些页面添加了刷新控件
把一些工具类的缓存策略 CACHE_ELSE_NETWORK 改为
CACHE_THEN_NETWORK或者NETWORK_ONLY
刷新控件 :
/** * 首次刷新 * @param hasFocus */ @BindView(R.id.sfl) SwipeRefreshLayout mSwipeRefreshLayout; private boolean isFirst=true; @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light); if (isFirst){ mSwipeRefreshLayout.setRefreshing(true); isFirst=false; } } private void getData() { new Thread(){ @Override public void run() { super.run(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() {//要加载页面数据的方法 mSwipeRefreshLayout.setRefreshing(false); } }); } }.start(); } protected void initRefreshLayout(final String day) { mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light); //给swipeRefreshLayout绑定刷新监听 mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { //设置2秒的时间来执行以下事件 new Handler().postDelayed(new Runnable() { public void run() { //在这里清空之前的数据 clear(); //重新拿到数据 mSwipeRefreshLayout.setRefreshing(false); } }, 1500); } }); }
简单地实现一下,不是很符合规范。这里只需要在对应的Adapter中判断对应position的号数是否为0,然后去设置选中状态就可以了,例如
int count = d_counts.get(position); if(count == 0){ viewHolder.man.setVisibility(View.VISIBLE); viewHolder.ll.setBackgroundResource(R.color.darkgray); //设置当前item不可点击 viewHolder.ll.setOnClickListener(null); }
接下来就是调用支付接口了…
- 网上挂号V1.0之开始挂号
- 网上挂号V1.0
- 挂号
- 网上预约挂号之左右列表
- 挂号系统 V1.0(上)
- 挂号系统 V1.0(下)
- 医院挂号
- 医院挂号
- 吐槽网上挂号遇到的不方便的网页交互
- 基于C++与JS技术实现的网上挂号助手
- 挂号控件 未完成版
- 下载挂号器
- UC挂号器
- 新浪uc挂号器
- 预约挂号流程
- 模拟医院挂号系统
- 阿道夫哈哈挂号
- 医指通快速挂号攻略
- LeetCode小白菜笔记[4]:Roman to Integer
- C++相关书籍推荐
- pl/sql字符窜截取
- V
- 简单介绍python的历史
- 网上挂号V1.0之开始挂号
- linux基本操作---find命令
- 免费送纸质书, 感谢亲们的陪伴~
- AtCoder Beginner Contest 081
- 习题8.1
- [leetcode] 141. Linked List Cycle
- greenDao 引入 eclipse 中使用
- Java Interface接口的应用
- Sequence Modeling With CTC