Android获取当前活动的名称以进行多态方法

5
我有一个困境,基本上我有一些ImageButtons,我希望它们在所有活动中显示(这已经完成),并且我还希望它们以某种特定的方式在所有活动中显示,具体取决于正在显示哪个活动。我希望以这样的方式完成,即我不必在每个类中单独硬编码规格。
虽然图像在一个共享的XML文档中定义,但我希望一个共享的类能够读取调用的活动,然后以某种特定的方式格式化特定的图像。这样,如果我改变功能,我只需要在一个类中更改属性。
我想要做一些类似于If或switch语句的东西,比较if(thisActivity == MainActivity),但是我不知道如何检索活动的“名称”以进行比较!
编辑。我想要类似于这样的东西:
   Context myContext = this;

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

    }

我知道Intent函数没有原型可以检查类似这样的类,但我想要一些能让我知道当前类是特定类的一部分的东西,而不是条件语句中的其他情况。谢谢您的任何见解!
1个回答

20

instanceof运算符是否适合您的需求?

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

你能详细说明一下吗?我该如何在条件语句中使用该运算符,我将要比较什么? - CQM
哈哈,我们同时编辑了帖子,真是巧啊。看看我的修改:我已经应用了它,但我不确定Activity1应该是什么类型? - CQM
更新。您只需使用“this”引用当前Activity,并可以比较任何其他Activity(或任何其他对象)的类名。 - LeffelMania
上下文 myContext = this;如果(myContext instanceof Activity(Main.class)) {}我不明白如何获取我要查找的活动的名称。你示例中的 "Activity1" 是什么类型,我该如何初始化它? - CQM
我有一个 if(this instanceof Activity),它没有返回错误,但它不够具体,当前每次运行时所有的 "this" 都将是 "Activity" 的实例,我不确定如何在这种情况下改变区分。 - CQM
1
真的吗?使用你的类名!无论你使用哪些扩展Activity的类,只需使用它即可。如果你的类叫做ThisIsMyClassActivity extends Activity,只需使用if(this instanceof ThisIsMyClassActivity)。你可以使用任何类名。 - LeffelMania

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接