在我的主要活动中,我通过工具栏中的按钮单击调用第二个活动,如下所示
if(id == R.id.addNav) {
startActivityForResult(new Intent(this, TextFormActivity.class), 0);
return true;
}
然后在我的第二个活动中,我首先使用标记
public static final String EXTRA_TEXT_ADD =
"text_add";
然后,当点击添加按钮时,我设置了结果
mButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Text text = new Text();
text.setTitle(mEditTextTitle.getText().toString());
text.setRecipient(mEditTextRecipient.getText().toString());
text.setSent(false);
text.setMessage(mEditTextMessage.getText().toString());
mTextList.add(text);
Intent i = new Intent();
i.putExtra(TextFormActivity.EXTRA_TEXT_ADD,true);
setResult(RESULT_OK, i);
}
});
这就是我处理onActivityResult
的方法 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("TextListActivity", "Result Entered");
if(data == null){
return;
}
boolean result = data.getBooleanExtra(TextFormActivity.EXTRA_TEXT_ADD,false);
Toast.makeText(this,"Result Code: "+ result,Toast.LENGTH_SHORT).show();
}
当我回到主要活动时,我仍然不知道为什么我的吐司没有出现
修改 好吧,我已经找到了问题,那就是我使用的是NavUtils.navigateUpFromSameTask(TextFormActivity.this);返回主活动,它不会调用onActivityResult方法。
答案 0 :(得分:1)
您需要完成为结果开始的活动。
因此,在设置结果后按钮单击监听器,只需完成活动。
mButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
.....
........
Intent i = new Intent();
i.putExtra(TextFormActivity.EXTRA_TEXT_ADD,true);
setResult(RESULT_OK, i);
finish();// finish the activity
}
});
试试这个,应该有用。