1

UIに戻るボタンが表示されています。A、B、Cと言う3つの活動があります。アクティビティ A はスプラッシュ スクリーンです。アクティビティ B はホーム画面です。アクティビティ C は編集画面です。編集画面でのみ、戻るボタンがあります。ユーザーがそれを押すと、ある種のhttpリクエストとレスポンスも含むアクティビティBが開きます。スタックからの前のアクティビティが表示されるようにしたいですか? どうすればそれを達成できますか? デバイスの戻るボタンを押すと前のアクティビティを開くことができますか?

デバイスの [戻る] ボタンを押しても、http 要求は送信されませんか? UIの戻るボタンを押したときにこの動作を実現したい。

4

3 に答える 3

4

戻るボタンでアクティビティBのインテントを呼び出すことができ、httpリクエストとレスポンスのコードはonCreate関数にあると思います

しかし、デバイスの戻るボタンはonCreateを呼び出しません
これには2つの解決策があります

マッカースが言うように、onKeyDownを聞いてください

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        Intent i = new Intent(ActivityC.this,ActivityB.class);    
            startActivity(i);   
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

そして2番目の方法はActivityBのonStartにコードを書くことです

protected void onStart() {
        //http request and response code
    }

このonStartは、ActivityBが開いたときに常にこれを呼び出します

これがお役に立てば幸いです

于 2010-11-02T15:48:19.770 に答える
0

まず第一に、UIに戻るボタンを表示するのは良くありません。すべてのAndroidデバイスには戻るボタンがあります。

戻るボタンを別の方法で処理する場合は、このリンクを確認してください。

于 2010-11-02T11:19:15.390 に答える
0

onKeyDown を使用したソリューションは機能する可能性がありますが、私の意見では onBackPressed を使用する方がはるかに簡単です。

次のオーバーライドで Back-key をインターセプトできます。

@Override
public void onBackPressed()
{
   //logic here, for example an intent
   Intent intent = new Intent(this, ActivityB.class);    
   startActivity(intent);   
}

super.onBackPressed();に、履歴の前のアクティビティに戻ります。

于 2013-03-07T10:26:36.177 に答える