【问题标题】:New activity required just to display a new screen?只需显示新屏幕就需要新活动?
【发布时间】:2011-11-09 20:12:28
【问题描述】:

我正在尝试为我的 Android 应用创建应用内帮助屏幕。帮助活动由用户从选项菜单中选择帮助创建。第一个屏幕显示帮助类别列表。

当用户点击一个类别时,我希望他们被带到一个显示该类别详细信息的新屏幕。

我希望保留后退按钮功能,并且我知道(我认为!)如果我为每个类别的详细信息设置一个新活动,它会很好地工作。

但是,每个子类别都有一个活动是否矫枉过正?

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    为什么没有一个显示子类别的活动,SubCategoryActivity。当你开始这个活动时,传入一个额外的参数,让它知道要显示哪个子类别(一个 int 或一个字符串)。

    如果所有这些类别的用户界面都彼此非常不同,则可能无法正常工作。

    【讨论】:

      【解决方案2】:

      绝对是矫枉过正,除非你真的想要关于活动变化的整洁动画。 FrameLayout 是你的朋友。

      【讨论】:

        【解决方案3】:

        也许您可以对子类别使用对话框而不是活动?如果没有,请寻求 sgarman 的解决方案。创建一个“HelpActivity”,在启动 Intent 时将帮助内容作为附加内容传递。

        【讨论】:

          【解决方案4】:

          如果你想重用同一个activity,最好的办法是:1)创建一个activity(比如HelpActivity)并设计它的布局,比如textview、button等,但不要设置textview的值。

          2) 对于 HELP 类别列表中的所有类别,每次都调用 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("calling-activity", 0);

              switch(callingActivity)
              {
              case ActivityConstants.callingACTIVITY1:
          
                  // do your stuff here
                              // set textview value based on callingACTIVITY1  
                  break;
          

          等等……

          3) 如果您想在用户阅读帮助说明后返回调用活动,请使用 super.onBackPressed(); //这将带你回到你的调用活动。

          希望这对你有帮助。

          【讨论】:

            猜你喜欢
            • 2021-05-20
            • 2016-03-21
            • 2020-03-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多