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

设置操作栏的颜色后,in 将突出显示为黄色,并且由于某种原因返回警告。可以做些什么来摆脱这个警告?actionBarColorprivate 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)));
        }
    }
}

答案 1

如果您知道您将使用这些变量,请添加到类的顶部:

@SuppressWarnings("FieldCanBeLocal")


答案 2

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

要摆脱警告,请在 中声明变量来修复问题:onCreate

final String actionBarColor = "#B36305";

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

推荐