0

Java は問題なく答えます。私は Android 用に C# を使用する傾向があります。

私のActivityGroupには、子アクティビティを開始して表示するこのメソッドがあります:

    public void StartChildActivity (string Id, Intent intent)
    {
        intent.AddFlags (ActivityFlags.ClearTop);
        Window window = LocalActivityManager.StartActivity (Id, intent);
        if (window != null)
        {
            mIdList.Add (Id);
            SetContentView (window.DecorView);
        }
    }

ただし、戻るボタンを処理してビューを「ポップ」し、前のビューに戻すと、finish が呼び出されるとアプリが閉じます。

    public override void OnBackPressed ()
    {
        int length = mIdList.Count;
        if (length > 1)
        {

            Activity current = LocalActivityManager.GetActivity (mIdList [length - 1]);
            current.Finish();
        }           
    }

アプリをシャットダウンする代わりに、ビューを「ポップ」するにはどうすればよいですか?

4

1 に答える 1

2

これは、iOS ポートを作ろうとしていることに非常によく知られているように聞こえますか?

こうして私の活動は始まります

 String id = "SOME_UNIQUE_ID";
 Intent intent = new Intent(context,SomeClass.class);
 intent.putExtra("UniqueID", id);
 LocalActivityManager m = getLocalActivityManager();
 Window w = m.startActivity(id, intent);
 setContentView(w.getDecorView());
 intentStack.push(intent);

これが私が背中で私の活動を終える方法です

 LocalActivityManager m = getLocalActivityManager();
 Intent i = intentStack.pop();
 m.destroyActivity(i.getStringExtra("UniqueID"),true);

インテント スタックはインテント スタックを保持する場所なので、それらのアクティビティを再び見つけることができます。

それが必要なはずですが、そのクラスとして TabActivity/ActivityGroup を使用する必要性を再評価する必要があり、すべてのサブクラスは 2.2 または 2.3 で廃止されました。フラグメントへの移行とサポート ライブラリの使用を検討する必要があります。

于 2012-05-09T05:25:12.827 に答える