[解決済み] Android ActionBarの色設定時に「フィールドはローカル変数に変換できます」というメッセージが表示される。
2022-01-28 20:26:38
質問
アクションバーの色を設定した後。
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
はグローバル変数(つまりフィールド)であってはなりません。なぜなら、1つのメソッドでしか使用されていないからです (
onCreate
). これは良いアドバイスです。変数のスコープを常に最小にすることで、可読性が向上し、プログラミングエラーの可能性が低くなります。
警告をなくすには、変数を以下のように宣言して問題を解決します。
onCreate
:
final String actionBarColor = "#B36305";
if(actionBar != null) {
actionBar.setBackgroundDrawable(
new ColorDrawable(Color.parseColor(actionBarColor)));
}
関連
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】Eclipseがエラーメッセージ "Java was started but returned exit code = 1" を返す
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】ソースルート外のJavaファイル intelliJ
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】Eclipseで「JUnitテストが見つかりませんでした。
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。