Parse.com将parseObject添加到数据库异常:预期的数字,但得到了一个数组

时间:2014-10-14 15:15:06

标签: android arrays parse-platform android-studio

我有以下代码:

buttonAddAlert.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if(AddAlert.this.isOnline()){   
                    if(busNumber.getText().toString().isEmpty() || description.getText().toString().isEmpty()){
                        Toast.makeText((Context)(AddAlert.this.getBaseContext()), (CharSequence)("Please fill all the fields!"), (int)(Toast.LENGTH_SHORT)).show();
                    }
                    else {
                        ParseObject parseObject = new ParseObject("AlertsClass");
                        parseObject.add("BusNumber", Integer.parseInt(busNumber.getText().toString()));
                        parseObject.add("Description", description.getText().toString());
                        //requestLocation();
                        parseObject.add("Coordinates", new ParseGeoPoint(currentLatitude, currentLongitude));

                        parseObject.saveEventually(new SaveCallback() {

                            @Override
                            public void done(ParseException e) {
                                Intent recentSightingsPageIntent = new Intent(AddAlert.this, RecentSightings.class);
                                startActivity(recentSightingsPageIntent);
                            }
                        });
                    }
                }
                else{
                    Toast.makeText((Context)(AddAlert.this.getBaseContext()), (CharSequence)("Your internet connection is offline"), (int)(Toast.LENGTH_SHORT)).show();
                }
            }
        });

当我调试代码时,当它到达" public void done(ParseException e)"例外(e)打印:

  
    

com.parse.ParseException:密钥BusNumber的无效类型,预期数量,但得到数组。

  

我有点被蒙住眼睛,我无法理解为什么我收到这个错误,因为我正在将文本从EditText转换为int,并且它仍然表示它是一个数组。

感谢您的时间!

2 个答案:

答案 0 :(得分:9)

解决了它。问题是我使用的是parseObject.add(用于数组)。要为数据库放置单个值,您需要使用parseObject.put(用于单个项目)。否则你会得到我的例外。我在这里写这个,也许有人会看到同样的问题。

干杯!

答案 1 :(得分:0)

您不应该使用addObject:forKey:。解析对象实际上是字典,因此请尝试使用setObject:forKey: