gpt4 book ai didi

java - 使用 BaseActivity 进行 OnResume 操作栏样式设置

转载 作者:行者123 更新时间:2023-12-01 13:36:22 24 4
gpt4 key购买 nike

我正在尝试修改一个项目,其中包含用于设置操作栏样式的代码。样式发生的方式是在每个 FragmentActivity 中都存在以下代码:

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
actionbarcolor = PreferenceData.getIntValues(AddJournalEntry.this,
"actionbarcolor");
if (actionbarcolor == 1) {
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
} else if (actionbarcolor == 2) {
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
}
}

我想创建一个新的基本 fragment Activity 类,其中包含此代码,这样我就不必在每个屏幕上复制/粘贴/更新此代码。我只是将其扩展到其他屏幕。我创建了一个新类,如下所示:

package com.fasttracksites.skyrimjournal;

import android.app.ActionBar;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v4.app.FragmentActivity;

import com.fasttracksites.adapters.PreferenceData;

public class BaseActivity extends FragmentActivity {

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
actionbarcolor = PreferenceData.getIntValues(AddJournalEntry.this,
"actionbarcolor");
if (actionbarcolor == 1) {
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
} else if (actionbarcolor == 2) {
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
}
}

}

我看到的唯一问题是我需要能够传递当前屏幕的上下文,是否可以这样做或者我应该做一些不同的事情?

最佳答案

您不需要当前屏幕的上下文,只需使用“this”即可。如果父类中有代码,则父类和子类中对其自身的引用是相同的。您可以像这样更新代码:

public class BaseActivity extends FragmentActivity {

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
//Removed the AddJournalEntry before this
actionbarcolor = PreferenceData.getIntValues(this,
"actionbarcolor");
if (actionbarcolor == 1) {
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
} else if (actionbarcolor == 2) {
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED));
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
}
}

}

您还可以使用 xml 中的主题设置样式。如果你想让一种风格快速发展,我强烈建议使用 Android Asset Studio Action Bar Style Generator 。这是一个很好的工具,可以为操作栏生成所需的样式和资源文件。请务必查看它生成的文件,以熟悉如何使用 xml 设置操作栏样式。

关于java - 使用 BaseActivity 进行 OnResume 操作栏样式设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21238784/

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