我在Parse.com有两个课程
1-称为HospitalAppointment,具有约会列表,每个对象具有(AppointmentDate(date),DoctorFile(pointer(to class Doctors))和其他...)
2-类称为Doctor(具有医生名称(字符串),ID .....其他信息)
我在android studio中有2个java类
1-我在该课程中的主要活动我查询HospitalAppointment类
ParseQuery<ParseObject> doctors = ParseQuery.getQuery("HospitalAppointment");
doctors.whereEqualTo("AppointmentDate",startDate);
doctors.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> status, com.parse.ParseException e) {
if (status == null) {
Log.d("score", "no doctor available: ");
} else {
mStatus = status;
DoctorAdapter adapter = new DoctorAdapter(getListView().getContext(), mStatus);
setListAdapter(adapter);
}
}
});
在我为listview编写函数的DoctorAdapter活动中就是问题
public class DoctorAdapter extends ArrayAdapter<ParseObject> {
protected Context mContext;
protected List<ParseObject> mStatus;
public DoctorAdapter(Context context, List<ParseObject> status) {
super(context, R.layout.doctor_listadapter, status);
mContext = context;
mStatus = status;
}
//getview used to inflate each row
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.doctor_listadapter, null);
holder = new ViewHolder();//create new view
holder.mDocName = (TextView) convertView.findViewById(R.id.doctorName);//very imp to convertview
holder.mDocId = (TextView) convertView.findViewById(R.id.doctorId);
convertView.setTag(holder);//holder as parameter
} else {
holder = (ViewHolder) convertView.getTag();
}
ParseObject statusObject = mStatus.get(position);//postition of that row
ParseObject getDoctorID = statusObject.getParseObject("DoctorName");
String docId= getDoctorID.getObjectId();
holder.mDocId.setText(docId);
*// here is the problem I cannot retrive the Pointer data like Doctor name*
return convertView;
}
public static class ViewHolder {
TextView mDocId;
TextView mDocName;
}}
我检索了对象ID,但是指针中的问题我无法从指针中获取任何数据,我尝试使用查询方法,将类名称为“医生”,并且确实找到了“医生的ID以获取他的名字,但是它不起作用
和我尝试做Parse对象,我得到这个对象,但还是行不通?
我希望你能帮帮我
最佳答案
这样尝试
ParseObject hospitalAppointment = mStatus.get(position);//postition of that row
ParseObject doctor = hospitalAppointment.getParseObject("columnName");
doctor.fetchIfNeededInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject doctor, ParseException e) {
String docId= doctor.getObjectId();
// Do something with your new title variable
}
});