当前位置: 首页 > 面试题库 >

设置Android ActionBar颜色时出现“字段可以转换为局部变量”消息

南宫星波
2023-03-14
问题内容

设置操作栏的颜色后,actionBarColor中的private String actionBarColor = "#B36305";会突出显示为黄色,并且由于某种原因会返回警告。如何摆脱这个警告?

字段可以转换为局部变量

public class MainActivity extends AppCompatActivity {

    private String actionBarColor = "#B36305";

    private int getFactorColor(int color, float factor) {
        float[] hsv = new float[3];
        Color.colorToHSV(color, hsv);
        hsv[2] *= factor;
        color = Color.HSVToColor(hsv);
        return color;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.fragment_activity_main);

        ActionBar actionBar = getSupportActionBar();
        if(actionBar != null) {
            actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(actionBarColor)));
        }
    }
}

问题答案:

警告告诉您的是,它actionBarColor不应该是全局变量(即字段),因为它仅在一种方法(onCreate)中使用。这是一个很好的建议:您应该始终最小化变量的范围,因为它可以提高可读性并减少编程错误的可能性。

要摆脱警告,请在中声明变量以解决问题onCreate

final String actionBarColor = "#B36305";

if(actionBar != null) {
    actionBar.setBackgroundDrawable(
        new ColorDrawable(Color.parseColor(actionBarColor)));
}


 类似资料:
  • 通过RGB值设置输出线的颜色。 关于连接线定义,请参考这里: 连接线。 默认的输出线颜色是 0xDD380C: // 颜色的参数可以是字符串 "#FEF504" 或者是十六进制数值 0xFEF504 controller.setExportColor("#FEF504"); //controller.setExportColor(0xFEF504);

  • 问题内容: 如何在Python中动态设置局部变量(变量名是动态的)? 问题答案: 与已经发布的其他答案相反,你不能直接修改并期望它可以正常工作。 修改未定义。在函数外部,当和相同时,它将起作用;在一个函数内部通常将不起作用。 使用字典,或在对象上设置属性: 或者,如果你愿意,可以使用一个类: 编辑:访问不是函数的名称空间中的变量(因此,模块,类定义,实例)通常是通过字典查找来完成的(如Sven在注

  • 我有一个这样的布局: items.xml: 我在数组适配器中设置如下:

  • 我有一个动态变量,它将由一些颜色启动 我想从这个变量设置这个颜色属性 我怎样才能做到这一点?非常感谢。

  • 问题内容: 我似乎找不到在混淆的类的方法内部混淆本地变量的设置。 这是我反编译的其中一个类的节选,其中有一些明显的缺失部分。理想情况下,方法的参数和局部变量也将被混淆。 编辑,我还要附加proguard配置 问题答案: 您应该删除或优化该选项。这意味着使用局部变量名称保留属性: 您至少可以排除那些 理想情况下,您只保留严格要求的属性。 请参阅ProGuard手册>用法> -keepattribut

  • defineequationquadratic: selectsolutionsungratic: