Après avoir défini la couleur de la barre d'actions, actionBarColor
dans private String actionBarColor = "#B36305";
est surligné en jaune et un avertissement est renvoyé pour une raison quelconque. Que peut-on faire pour se débarrasser de cet avertissement?
Le champ peut être converti en une variable locale
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)));
}
}
}
L'avertissement vous indique que actionBarColor
ne doit pas être une variable globale (c'est-à-dire un champ), car il n'est utilisé que dans une seule méthode (onCreate
). C'est un bon conseil: vous devez toujours minimiser la portée de vos variables, car cela améliore la lisibilité et réduit les possibilités d'erreurs de programmation.
Pour vous débarrasser de l'avertissement, corrigez le problème en déclarant la variable dans onCreate
:
final String actionBarColor = "#B36305";
if(actionBar != null) {
actionBar.setBackgroundDrawable(
new ColorDrawable(Color.parseColor(actionBarColor)));
}
Si vous savez que vous utiliserez la ou les variables, ajoutez en haut de votre classe:
@SuppressWarnings("FieldCanBeLocal")