java - 해결 - support library 25.4 0



작업 표시 줄 색을 설정할 때 "필드를 로컬 변수로 변환 할 수 있음"메시지가 나타납니다. (2)

경고에서 말하는 것은 하나의 메소드 ( onCreate )에서만 사용되기 때문에 actionBarColor 가 전역 변수 (예 : 필드)가 아니 actionBarColor 한다는 것입니다. 이는 좋은 조언입니다. 가독성을 높이고 프로그래밍 오류 가능성을 줄이기 때문에 항상 변수의 범위를 최소화해야합니다.

경고를 제거하려면 onCreate 내에 변수를 선언하여 문제를 해결하십시오.

final String actionBarColor = "#B36305";

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

https://code.i-harness.com

작업 표시 줄의 색상을 설정 한 후 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)));
        }
    }
}

이것은 로컬 변수로 사용되는 클래스 수준 변수에 표시되는 것보다 lint 오류가 발생할 때 발생하는 오류가 아닙니다. 가서 로컬 변수로 정의하십시오. 그것은 작동합니다

예를 들어 -

private Tracker mTracker, mTracker2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GoogleAnalytics mInstance = GoogleAnalytics.getInstance(this);
    mTracker = mInstance.getDefaultTracker();
    mTracker2 = mInstance.getTracker(URL.ANALYTIC);
    mInstance.setDefaultTracker(mTracker2);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.actress_about_detail);
}

우리는 mtracker 변수를 지역 변수로 사용하므로 oncreate 메소드에서 선언해야합니다. 이렇게하면 오류가 해결됩니다.

희망이 당신을 도울 것입니다.