ActivityGroup во вкладке - кнопка "Назад"

Java отвечает отлично, я склонен использовать C# для Android.

В моей 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();
        }           
    }

Как мне получить представление "выскочить" вместо закрытия приложения?

1 ответ

Решение

Это звучит очень знакомо, пытаясь сделать порт для 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);

intentStack - это то место, где я храню стек намерений, чтобы я мог снова найти эти действия.

Это должно быть то, что вам нужно, но независимо от того, что вы должны пересмотреть свою потребность использовать TabActivity/ActivityGroup в качестве этого класса, и все подклассы устарели с 2.2 или 2.3. Вы должны рассмотреть возможность перехода к фрагментам и использовать библиотеку поддержки.

Другие вопросы по тегам