私のソフトウェアには、イメージの変更が多く含まれています。リソース番号を繰り返し調べるのではなく、各イメージ参照を表す定数を作成したいと思います。ここに私の試みは、これまでのところ、次のとおりです。このintを定数として初期化するにはどうすればよいですか?
この試みは、スタートアップに近い力を発生させます。
private final int EMPTY = getResources().getIdentifier("dotted_circle", "resId", "en.deco.android.livehud");
@Override
public void onCreate(Bundle savedInstanceState)
{
.....
}
この試みは、「最後の変数が初期化されないことがあり、」エラーを返します。ファイナルを削除すると動作します。
private final int EMPTY
@Override
public void onCreate(Bundle savedInstanceState)
{
EMPTY = getResources().getIdentifier("dotted_circle", "resId", "en.deco.android.livehud");
}
最初の場所で、ここで良いアイデアを定数を使用していますか?
私は定数の全体のポイントはあなたが値を変更できないと思ったのですか? – Xaisoft
私は値を変更したくありません。画像は、アプリケーションの使用を通じて同じIDを保持します。 – Deco
'final'フィールドは、オブジェクトの作成時に設定する必要があります。そのため、コンストラクタでそれらを設定する必要があります。あなたのオブジェクトはまだ準備ができていないので、宣言でそれを行うことはできません。また、そこにあるメソッドは例外をスローすることができます。 – Marcelo