#android #android-activity
#Android #android-активность
Вопрос:
Я пытаюсь создать экраны справки в приложении для моего приложения Android. Действие справки создается пользователем, выбирающим справку в меню параметров. На первом экране отображается список категорий справки.
Когда пользователь нажимает на категорию, я хочу, чтобы они переходили на новый экран, на котором отображаются сведения о категории.
Я хочу, чтобы функциональность кнопок возврата сохранялась, и я знаю (я думаю!), что это будет хорошо работать, если у меня будет новое действие для деталей каждой категории.
Но, является ли выполнение действия для каждой подкатегории излишним?
Ответ №1:
Почему бы не иметь одно действие, которое отображает подкатегории, SubCategoryActivity. Когда вы запускаете это действие, передайте extra, сообщая ему, какую подкатегорию отображать (int или string).
Если пользовательский интерфейс всех этих категорий сильно отличается друг от друга, это может работать некорректно.
Ответ №2:
Определенно излишество, если вы действительно не хотите аккуратную анимацию при смене действия. FrameLayout
твой друг.
Ответ №3:
Может быть, вы могли бы использовать диалоговое окно вместо действия для подкатегорий? Если нет, воспользуйтесь решением sgarman. Создайте одно «HelpActivity», в которое вы передаете содержимое справки в качестве дополнительных при запуске намерения.
Ответ №4:
Лучшее, что можно сделать, если вы хотите повторно использовать одно и то же действие, это: 1) создать одно действие (скажем, HelpActivity) и разработать его макет, такой как textview, button и т.д., Но не устанавливать значение textview.
2) Для всех категорий в вашем списке категорий СПРАВКИ вызывайте HelpActivity каждый раз.
3) Проверьте вызывающую активность, используя этот код: создайте интерфейс и объявите активность постоянной для всех действий отдельно, например:
ActivityConstants публичного интерфейса {
public static final int callingACTIVITY1 = 1001;
public static final int callingACTIVITY2 = 1002;
public static final int callingACTIVITY3 = 1003;
}
// затем определите вызывающую активность
int callingActivity=GetIntent().getIntExtra(«вызывающая активность», 0);
switch(callingActivity)
{
case ActivityConstants.callingACTIVITY1:
// do your stuff here
// set textview value based on callingACTIVITY1
break;
и так далее…
3) если вы хотите вернуться к выполнению вызова после того, как пользователь прочитает инструкции справки, затем используйте super.onBackPressed(); // это вернет вас к выполнению вызова.
Надеюсь, это будет полезно для вас.