【问题标题】:Pass a String to setContentView?将字符串传递给 setContentView?
【发布时间】:2011-05-11 02:07:05
【问题描述】:

有没有办法将字符串传递给“setContentView()”?即:setContentView(输出)。原因是我有一个用于多个活动的类(自定义 ListView 适配器),我需要为一个活动使用不同的布局,并且不希望有一个重复的类,其中唯一的变化是 setContentView()。我知道 XML 需要在 APK 中编译,但我认为布局的膨胀不需要在 onCreate 中......?那么,这可以使用变量来完成吗?或者有人有其他想法/方法吗?谢谢。

*我使用的类是“REVISED”代码部分中的HERE

【问题讨论】:

  • 我还没有尝试过,但是如果你将额外内容传递给意图,那么如果额外内容指示使用 layout1 {setContentview(layout1);} else {setcontentview(layout2);}?
  • @jkhouw1 这也许是个好主意 - 我会在 2 明天试一试。谢谢
  • 它有效,我刚刚测试过。

标签: android string class view


【解决方案1】:

当开始调用你的活动时,给它额外的东西。然后在您的活动中,测试这些额外内容并调用适当的 setcontentview。

【讨论】:

    【解决方案2】:

    setContentView() 采用与 R.java 相关的整数参数,因此,不,您不能将字符串传递给它。

    来源:http://developer.android.com/reference/android/app/Activity.html

    【讨论】:

      【解决方案3】:

      使用Resources.getIdentifier() 按名称获取资源。

      【讨论】:

        【解决方案4】:

        您必须以某种方式参数化您的活动:

        • 创建一个以int layoutId 作为构造函数参数的抽象活动类,从该类扩展您的活动并传递不同的布局
        • 将布局ID作为启动参数传递Intent

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-13
          • 2020-04-08
          • 2016-06-01
          • 2011-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多