所以我有这个Intent,它向另一个活动发送一个名称字符串。String的来源来自Parse中的一个类的对象。
ParseQuery<ParseObject> query1 = new ParseQuery<ParseObject>("People");
query1.getInBackground(objectId, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject parseObject, ParseException e) {
if (e == null) {
//success
String personName = parseObject.getString("personName");
Toast.makeText(getApplicationContext(), personName, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("personName", personName);
} else {
//there is an error
}
}
});
//push ends
Intent Go = new Intent(personActivity.this, SecondActivity.class);
startActivity(Go);
我已经能够使用上面的代码来获取该人的名字的Toast并将其发送到另一个活动中。我现在想做的是获取该人的姓名字符串,然后将其上传以解析为另一个类中的新对象。我试过使用此代码不起作用。
这是Second Activity中的代码,我用它从Toast中获取String并从Main Activity中获取Intent,并将其作为类中的新对象发送给Parse。
Intent intent = getIntent();
personName = intent.getStringExtra("personName");
ParseObject newObject = new ParseObject("AnotherPeople");
newObject.put("peopleName", personName);
newObject.saveInBackground();
每当我尝试保存数据时,此代码都会不断崩溃。有谁可以帮助我吗。
问题是您没有将数据发送到第二个活动,在该done()
方法中,您正在创建一个意图并没有使用它,即您没有在调用SecondActivity
using startActivity
。
在done()
方法之外,您正在创建另一个意图并调用the,SecondActivity
但是这次您没有传递名称,因此在第二个活动中该名称为null。
一个简单的解决方法是,在done方法内,只需调用startActivity
,以便将数据传递给SecondActivity。
@Override
public void done(ParseObject parseObject, ParseException e) {
if (e == null) {
//success
String personName = parseObject.getString("personName");
Toast.makeText(getApplicationContext(), personName, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("personName", personName);
startActivity(intent); //<----Updated here
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句