gpt4 book ai didi

Android - 如何以编程方式获取 parentActivityName 属性值?

转载 作者:行者123 更新时间:2023-11-30 01:14:20 27 4
gpt4 key购买 nike

在我的 list 中声明了一个 Activity ,如下所示:

    <activity
android:name=".TicketingHomeActivity"
android:label="@string/title_activity_ticketing_home"
android:parentActivityName=".HomeActivity" />

如何以编程方式获取 android:parentActivityName 的值?

我需要这样做,因为我刚刚用工具栏替换了我的 ActionBar,但是 getSupportActionBar().setDisplayShowHomeEnabled(true) 现在在 Activity 中显示向上箭头,即使没有 parentActivityName list 中设置的属性。因此,我想在我的 BaseActivity 中检测是否未设置 parentActivityName,因此我可以相应地隐藏向上箭头。

注意 - 此问题不是 this question 的重复问题因为我特别询问如何以编程方式检测 android:parentActivityName 属性的值。

最佳答案

您可以在您的 BaseActivity 上调用 getParentActivityIntent()

它将返回一个 Intent。然后您可以调用 getComponent(),它将返回一个 ComponentName,您可以从那里获取 android:parentActivityName(类名)。

编辑

代码示例:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {

toolbar.setTitle(getTitle());

Intent parentActivityIntent = getParentActivityIntent();
boolean doesParentActivityExist;
if (parentActivityIntent == null) {
doesParentActivityExist = false;
}
else {
ComponentName componentName = parentActivityIntent.getComponent();
doesParentActivityExist = (componentName.getClassName() != null);
}
//toolbar.setSubtitle("Has parent: " + doesParentActivityExist);

setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null && doesParentActivityExist) {

actionBar.setDisplayHomeAsUpEnabled(doesParentActivityExist);
actionBar.setHomeButtonEnabled(doesParentActivityExist);

actionBar.setDefaultDisplayHomeAsUpEnabled(doesParentActivityExist);
actionBar.setDisplayShowHomeEnabled(doesParentActivityExist);

}
}

关于Android - 如何以编程方式获取 parentActivityName 属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com