【问题标题】:android get current activity's name for polymorphic methodandroid获取当前活动的多态方法名称
【发布时间】:2011-08-05 21:04:31
【问题描述】:

我有一个两难选择,基本上我有希望在所有活动上显示的 ImageButtons(这已完成),并且我还希望它们以某种方式显示在所有活动上,具体取决于正在显示的活动。我希望以一种不必在每个类中单独对规范进行硬编码的方式完成此操作。

虽然图像是在一个共享 XML 文档中定义的,但我希望共享类能够读取正在调用的活动,然后以某种方式格式化特定图像。因此,如果我更改功能,我只需要更改一个类中的属性。

我想做一些比较 if(thisActivity == MainActivity) then 的 If 或 switch 语句,但我不知道如何检索活动的“名称”来比较它们!

编辑。我想要这样的东西:

   Context myContext = this;

    if(myContext instanceof Intent(MainMenu.class) == true)
    {

    }

我知道 Intent 函数没有原型来检查这样的类,但我想要一些能让我知道当前类是特定类的一部分的东西,而不是条件语句中的其他几种情况

感谢您的任何见解!

【问题讨论】:

    标签: android class methods android-activity compare


    【解决方案1】:

    instanceof 运算符会满足您的需求吗?

    if(this instanceof Activity1) {
    //...
    }
    else if(this instanceof Activity2) {
    //...
    }
    

    【讨论】:

    • 你能详细说明一下吗?我将如何在条件语句中使用该运算符以及我将比较什么?
    • 大声笑,哇,我们俩同时编辑了我们的帖子。查看我的编辑:我应用了它,但我不确定 Activity1 应该是什么类型?
    • 已更新。您只需使用 this 对当前 Activity 的引用,就可以比较任何其他 Activity(或任何其他 Object)的类名。
    • Context myContext = this; if(myContext instanceof Activity(Main.class)) { } ??我错过了一些关于如何提取我正在寻找的活动的名称的信息。在您的示例中,“Activity1”是什么类型?如何初始化它?
    • 真的吗?使用您的班级名称!无论您使用的是哪个扩展 Activity 的类,都可以使用它。如果您的班级名为ThisIsMyClassActivity extends Activity,请使用if(this instanceof ThisIsMyClassActivity)。你可以使用任何类名。
    猜你喜欢
    • 2012-05-24
    • 2016-04-04
    • 2012-11-16
    • 2016-03-13
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2013-06-25
    • 2010-10-01
    相关资源
    最近更新 更多