我有一个活动,它启动了另一个具有EditText-view的活动。当用户单击“后退”按钮时,我想要返回编辑文本视图中的字符串,但我无法让它工作。我尝试实现一个按钮(测试目的)并运行我的代码,然后它就可以工作了。
在启动另一个的活动中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (REQUEST_CODE_COMMENT == requestCode) {
if (RESULT_OK == resultCode) {
Toast.makeText(this, data.getDataString(), Toast.LENGTH_LONG).show();
}
}
}具有编辑文本视图的活动(我希望它可以工作):
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.setData(Uri.parse("hfldskajfkj" + commentEditText.getText().toString()));
setResult(RESULT_OK, intent);
}但是当我记录它时,resultCode是0 (RESULT_CANCELLED)。
发布于 2011-09-12 03:07:47
public void onBackPressed() {
finish();
}这是onBackPressed()的默认实现(在中也有提到)。这意味着您的活动在调用其他代码之前完成(使用默认代码RESULT_CANCELLED)。删除super.onBackPressed()并在底部添加finish()应该可以解决这个问题。
发布于 2011-09-12 03:11:54
问题是: API说:
public void onBackPressed ()自: API级别5
当活动检测到用户按下back键时调用。默认实现只是完成当前的活动,但是您可以覆盖它来做任何您想做的事情。
当您调用super.onBackPressed()时,对特定活动的所有引用都会被清除。因此,不添加特定的数据。尝试在按钮的OnClickListener中插入相同的代码。这应该是可行的
发布于 2011-09-12 11:45:20
在Android UI指南中的某个地方,它说你不应该有明确的“保存”按钮。在本例中,答案很简单:不要费心检查结果代码是否为RESULT_OK,无论如何都要使用EditText小部件的最后一个值。
https://stackoverflow.com/questions/7380538
复制相似问题