我是Android开发的新手,特别是Parse.com。
我正在尝试运行一个简单的项目,其中我有两个班级(成绩)和(科目),其中每个科目都有指向某个等级的指针(使用objectId)。 if条件捕获ParseRequesException“gradePointer需要指针值”
我正在尝试在ListView中显示某个等级的主题列表。
谢谢!
代码:
protected void onResume() {
super.onResume();
final ParseObject grade = getGradeByGradeName("First secondry");
sec1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String gradeId = grade.getObjectId();
ParseQuery<ParseObject> subjectQuery = ParseQuery.getQuery("subjects");
subjectQuery.include("gradePointer");
subjectQuery.whereEqualTo("gradePointer",gradeId);
subjectQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if(e == null){
for(int i=0;i<subjectList.length;i++){
subjectList[i]=list.get(i).getString("name");
}
subjects.setAdapter(new ArrayAdapter<String>(MainActivity.this,R
.layout.item,
subjectList));
}
else{
Toast.makeText(MainActivity.this,e.toString(),Toast.LENGTH_LONG).show();
}
}
});
}
});
}
答案 0 :(得分:0)
这很容易,因为有两件事你的方法有点不对,
这是一种在单个请求中获取所有数据的方法,(在下面的查询中替换成绩列名称)
<强>解释强>
由于您要包含gradePointer,因此您可以在查询中直接查询该表中的字段。
protected void onResume() {
super.onResume();
// final ParseObject grade = getGradeByGradeName("First secondry");
sec1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//String gradeId = grade.getObjectId();
ParseQuery<ParseObject> subjectQuery = ParseQuery.getQuery("subjects");
subjectQuery.include("gradePointer");
subjectQuery.whereEqualTo("RelplaceThisWithGradeColumnName","First secondry");
subjectQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if(e == null){
for(int i=0;i<subjectList.length;i++){
subjectList[i]=list.get(i).getString("name");
}
subjects.setAdapter(new ArrayAdapter<String>(MainActivity.this,R
.layout.item,
subjectList));
}
else{
Toast.makeText(MainActivity.this,e.toString(),Toast.LENGTH_LONG).show();
}
}
});
}
});
}
希望这有帮助。