-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使用する必要があります。startActivityForResultfinish()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 に答える