-4

我的项目中有 2 个活动。我想在按下后退按钮时调用一个新活动。我为此尝试了 onBackPressed(),onKeyDown() 。我的代码如下。我在谷歌搜索了这个,但对我没有任何帮助。

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        Log.d("update", is_updated.toString());
        if(is_updated){
            Intent i = new Intent(ProductDetailsActivity.this,ProductListActivity.class);
            startActivity(i);
            finish();
            is_updated = false;
        }else {
            finish();
        }
    }

我记录了值“is_update”,即使值是“true”,它也没有调用 ProductListActivity.class,相同的代码适用于按钮单击。我如何在 onBackpressed() 中调用新活动,谁能帮助我。

4

1 回答 1

1

正如@Raghunandan 所说。我在这里解释他的话。如果你想更新以前的数据,activity你应该使用startActivityForResult这个你调用finish()override finish()使用setResult(RESULT_OK)的方法:

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        Log.d("update", is_updated.toString());
        if(is_updated){

            finish();
            is_updated = false;
        }
    }

@Override
    public void finish() {
        super.finish();

       Intent intent = new Intent();
       intent.putExtra("updated_data", "data");//set whatever your updated data is
       setResult(RESULT_OK, intent);
    }

现在回到之前的activity覆盖onActivityResult方法。我想您知道onActivityResult方法及其用法,如果不从这里阅读

希望你能得到想要的结果。

于 2014-09-23T07:40:34.420 回答