您的位置:首页 > 其它

网上挂号V1.0之开始挂号

2017-12-11 00:19 148 查看

网上预约挂号系统

上一篇链接 网上挂号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);

15cfd
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);

}


接下来就是调用支付接口了…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  控件 bmob