"Feld umgewandelt werden können, um eine lokale variable" - Meldung erscheint bei der Einstellung Android ActionBar Farbe
Nach Einstellung die Farbe der Action Bar actionBarColor
im private String actionBarColor = "#B36305";
wird gelb markiert und eine Warnung ausgegeben, aus irgendeinem Grund. Was kann getan werden, um loszuwerden, diese Warnung?
Feld umgewandelt werden können, um eine lokale variable
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)));
}
}
}
- was ist die Bedeutung dieser Warnung? Ich meine, wie problematisch kann es werden, aus performance-oder Speicher-nutzen-Aspekt , wenn linke unbehandelte..?
InformationsquelleAutor MacaronLover | 2015-07-29
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was die Warnung sagt Ihnen, dass
actionBarColor
sollte nicht eine Globale variable (also ein Feld), weil es nur in einer Methode (onCreate
). Dies ist ein guter Rat: Sie sollten immer minimieren Sie den Gültigkeitsbereich der Variablen, weil es verbessert die Lesbarkeit und reduziert die Möglichkeiten für Fehler in der Programmierung.Loswerden der Warnung, beheben Sie das problem, indem er die Variablen innerhalb
onCreate
:private|public static final String
), und tun, so sollten Sie nicht sehen, diese Warnung.Wenn Sie wissen, verwenden Sie die variable(N), fügen Sie an die Spitze Ihrer Klasse:
@SuppressWarnings("FieldCanBeLocal")
private static
macht Sie Konstanten, die ist sogar noch deutlicher.Dies ist kein Fehler dies ist waring, wenn Sie gehen in den lint-Fehler, als wird es zeigen-in-class-Niveau-variable, die verwendet wird als eine lokale variable. Gehen und legen es als lokale variable. Es Funktioniert
Beispielsweise -
verwenden wir mtracker variable als lokale, so haben wir zu erklären, in der oncreate-Methode. Dies beheben Sie Ihre Fehler.
Hoffe, dies wird Ihnen helfen.