首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >startActivityForResult的问题

startActivityForResult的问题
EN

Stack Overflow用户
提问于 2011-09-12 02:59:20
回答 3查看 1.5K关注 0票数 0

我有一个活动,它启动了另一个具有EditText-view的活动。当用户单击“后退”按钮时,我想要返回编辑文本视图中的字符串,但我无法让它工作。我尝试实现一个按钮(测试目的)并运行我的代码,然后它就可以工作了。

在启动另一个的活动中:

代码语言:javascript
复制
    @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();
            }
        }
    }

具有编辑文本视图的活动(我希望它可以工作):

代码语言:javascript
复制
@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)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-12 03:07:47

代码语言:javascript
复制
public void onBackPressed() {
        finish();
}

这是onBackPressed()的默认实现(在中也有提到)。这意味着您的活动在调用其他代码之前完成(使用默认代码RESULT_CANCELLED)。删除super.onBackPressed()并在底部添加finish()应该可以解决这个问题。

票数 3
EN

Stack Overflow用户

发布于 2011-09-12 03:11:54

问题是: API说:

public void onBackPressed ()自: API级别5

当活动检测到用户按下back键时调用。默认实现只是完成当前的活动,但是您可以覆盖它来做任何您想做的事情。

当您调用super.onBackPressed()时,对特定活动的所有引用都会被清除。因此,不添加特定的数据。尝试在按钮的OnClickListener中插入相同的代码。这应该是可行的

票数 2
EN

Stack Overflow用户

发布于 2011-09-12 11:45:20

在Android UI指南中的某个地方,它说你不应该有明确的“保存”按钮。在本例中,答案很简单:不要费心检查结果代码是否为RESULT_OK,无论如何都要使用EditText小部件的最后一个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7380538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档