这是我的问题,我的主视图只显示一个按钮,按下此按钮会显示另一个视图。此视图只有另一个按钮,当按下此按钮时,当前视图完成并且控件返回到前一个视图。
为了显示我使用 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 并且我不知道如何解决它,有人可以帮助我吗?
非常感谢!
这里,
@Override public void onBackPressed() { setResult(Activity.RESULT_OK); finish(); }
确实可以通过按 BACK 按钮返回(RESULT_OK)。不要打电话
super.onBackPressed().
super.onBackPressed()