2

4 つのタブを持つタブホストを含​​む Android アプリケーションを開発しています。4 つのタブはすべて、アクティビティ グループを拡張する同じクラス Activity1 に移動します。

Activity1 から、次のコードを使用して別のアクティビティ Activity2 に移動しています。

Intent intent = new Intent(arg1.getContext(), Activity2.class);
            replaceContentView("sample", intent, Intent.FLAG_ACTIVITY_CLEAR_TOP);

public void replaceContentView(String id, Intent newIntent, int flag) {
    View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(flag)).getDecorView(); 
    this.setContentView(view);

この新しいアクティビティから、デバイスの戻るボタンが押されたときに Activity1 に戻る必要があります。Activity2 の onbackpressed() メソッドを次のコードでオーバーライドしました。

Intent intent = new Intent(this, Activity1.class); 
    Activity parentActivity = (Activity1)getParent(); 
    parentActivity.replaceContentView("sample", intent, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT );

コードを実行すると、実際には Activity2 から移動しますが、Activity1 からも移動します。必要なのは、Activity2 から Activity1 に戻ることです...誰か助けてくれますか?

4

2 に答える 2

0

を呼び出すだけでfinish()、ニーズに対応できます。

Androidを参照できます:詳細な説明については、前のアクティビティに戻ります。

于 2013-03-01T11:44:47.200 に答える
0

このコードを試してください

    public boolean onKeyDown(int keyCode, KeyEvent event)  
    {
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
     {
        this.moveTaskToBack(true);
        return true;
     }
    return super.onKeyDown(keyCode, event);
   }
于 2013-03-01T11:33:32.530 に答える