小编典典

当我专门添加 RESULT_OK 时,Android 得到了 RESULT_CANCELED

all

这是我的问题,我的主视图只显示一个按钮,按下此按钮会显示另一个视图。此视图只有另一个按钮,当按下此按钮时,当前视图完成并且控件返回到前一个视图。

为了显示我使用 startActivityForResult 的第二个视图,我将代码放在这里。

private void startNewview() {       
    Intent it = new Intent(getApplicationContext(), newView.class);
    startActivityForResult(it,VIEW_ID);

}

调用的视图只有一个按钮事件,这里是代码

Button b = (Button) findViewById(R.id.close);
    b.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            setResult(RESULT_OK);               
            finish();

        }
    });

最后,主视图中的onActivityResult方法,这里是代码

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == VIEW_ID && resultCode == RESULT_OK) {
        tv = (TextView) findViewById(R.id.tv);
        tv.setText("The result ok is  here :)");
    }

}

问题是 resultCode 总是 0 = RESULT_CANCELED 并且我不知道如何解决它,有人可以帮助我吗?

非常感谢!


阅读 78

收藏
2022-04-02

共1个答案

小编典典

这里,

@Override
public void onBackPressed() {
    setResult(Activity.RESULT_OK);
    finish();
}

确实可以通过按 BACK 按钮返回(RESULT_OK)。不要打电话

super.onBackPressed().

2022-04-02