没有得到我从解析中获取的解析对象列表
Not getting list of parse object I am fetching from parse
我正在使用此代码从解析云中获取一行,但每次我获取对象时它都会给我空列表,尽管在解析中有一个相应的行可用,我正在尝试查找和更新。
public void onClick(View v) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentInfo");
query.whereEqualTo("rollnum",rollnum.getText().toString());
query.whereEqualTo("name",name.getText().toString());
query.whereEqualTo("city",city.getText().toString());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e == null && objects.size() > 0){
obj=objects.get(0);
obj.put("rollnum",rollnum.getText()
.toString());
obj.put("name",name.getText().toString());
obj.put("city", city.getText().toString());
obj.saveInBackground();
}
else if(objects.size()==0){
Toast.makeText(getApplicationContext(), "No relation Found!"+e,Toast.LENGTH_LONG).show();
}
}
}
如果对象在那里,我将在 put method.But 的帮助下用新值更新它,它总是给我一个空的解析对象列表。
我认为你正在尝试更新可用的 objects.You 可以这样做。
public void onClick(View v) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentInfo");
query.whereEqualTo("rollnum",rollnum.getText().toString());
query.whereEqualTo("name",name.getText().toString());
query.whereEqualTo("city",city.getText().toString());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e == null ){
if(object.size()==0){
//here you can put object with help of put method if object is not there and when the object size is greater than 1 you remove the other objects except the objects.get(0).All other objects except one will be removed and only the zeroth object will be updated at the time user updates it
}
else if( objects.size() > 0){
obj=objects.get(0);
obj.put("rollnum",rollnum.getText()
.toString());
obj.put("name",name.getText().toString());
obj.put("city", city.getText().toString());
obj.saveInBackground();
}
}
else{
//exception in getting data
}
}
}
如果您得到一个空的对象列表,则意味着没有存储与您查询的条件相匹配的对象。
确保您理解您的查询。您设置查询的方式必须存储一个 ParseObject,其中 rollnum、name 和 city 等于您正在测试的那些值,并且它们必须完全相等。如果没有对象符合该条件,则解析将 return 一个空列表。使用 Logcat 和 Parse Dashboard 调试并找出您的查询有什么问题。
我正在使用此代码从解析云中获取一行,但每次我获取对象时它都会给我空列表,尽管在解析中有一个相应的行可用,我正在尝试查找和更新。
public void onClick(View v) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentInfo");
query.whereEqualTo("rollnum",rollnum.getText().toString());
query.whereEqualTo("name",name.getText().toString());
query.whereEqualTo("city",city.getText().toString());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e == null && objects.size() > 0){
obj=objects.get(0);
obj.put("rollnum",rollnum.getText()
.toString());
obj.put("name",name.getText().toString());
obj.put("city", city.getText().toString());
obj.saveInBackground();
}
else if(objects.size()==0){
Toast.makeText(getApplicationContext(), "No relation Found!"+e,Toast.LENGTH_LONG).show();
}
}
}
如果对象在那里,我将在 put method.But 的帮助下用新值更新它,它总是给我一个空的解析对象列表。
我认为你正在尝试更新可用的 objects.You 可以这样做。
public void onClick(View v) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentInfo");
query.whereEqualTo("rollnum",rollnum.getText().toString());
query.whereEqualTo("name",name.getText().toString());
query.whereEqualTo("city",city.getText().toString());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e == null ){
if(object.size()==0){
//here you can put object with help of put method if object is not there and when the object size is greater than 1 you remove the other objects except the objects.get(0).All other objects except one will be removed and only the zeroth object will be updated at the time user updates it
}
else if( objects.size() > 0){
obj=objects.get(0);
obj.put("rollnum",rollnum.getText()
.toString());
obj.put("name",name.getText().toString());
obj.put("city", city.getText().toString());
obj.saveInBackground();
}
}
else{
//exception in getting data
}
}
}
如果您得到一个空的对象列表,则意味着没有存储与您查询的条件相匹配的对象。
确保您理解您的查询。您设置查询的方式必须存储一个 ParseObject,其中 rollnum、name 和 city 等于您正在测试的那些值,并且它们必须完全相等。如果没有对象符合该条件,则解析将 return 一个空列表。使用 Logcat 和 Parse Dashboard 调试并找出您的查询有什么问题。