0

私の活動の 1 つで、ImageButtonクリックすると を使用してバックグラウンド リソースが変更されますsetBackgroundResource()。そのアクティビティでは正常に動作しますが、そのアクティビティを離れて戻ってくると、ボタンは XML で設定されたデフォルトの背景に戻ります。ボタンが再度クリックされるまで、バックグラウンド リソースを何かに永続的に設定する方法はありますか?

4

5 に答える 5

3

画像ボタンの値を静的変数または SharedPreferences に保存する必要があります。

たとえば、変数を宣言します

public static int bgresource;

今すぐimgボタンをクリック

if(something) {
bgresource = R.drawable.img1
} else {
bgresource = R.drawable.img2
}

mylayout.setBackgroundResource(bgresource);

また、アクティビティの onResume() で次のことを行います。

mylayout.setBackgroundResource(bgresource);
于 2012-01-16T15:16:16.703 に答える
1

SharedPreferences を使用します。

背景を変更する場合:

getSharedPreferences("background", MODE_PRIVATE).edit().putString("background","background_nr_1").commit();

また

getSharedPreferences("background", MODE_PRIVATE).edit().putString("background","background_nr_2").commit();

等々。これにより、文字列が保存され、現在の背景が sharedPreferences に記述されます。

onCreate-Method に以下を入れる必要があります。

String back = getSharedPreferences("background", MODE_PRIVATE).getString("background");

これにより、「background_nr_x」が後ろに表示されます。背景を選択できるようになりました。

if (back.equals("background_nr_1") { // set the Background associated with nr_1
else if (.... "nr_2") ...

注: これにより、アプリが閉じられていても、現在選択されている背景が復元されます。

于 2012-01-16T15:14:27.200 に答える
0

背景として使用する画像の URL/ID を SharedPreferences に保存し、アクティビティが作成されるたびに必ず設定してください。それ以外の場合は、XML ファイルで指定された背景が、次回アクティビティが作成されるときに使用されます。

于 2012-01-16T15:13:57.900 に答える
0

ActivityonResume()メソッドを上書きする必要があります。アクティビティまたはボタンの状態 (押されているか押されていないか) を維持し、onResume()メソッドでこの状態を確認して背景を変更します。

于 2012-01-16T15:14:02.180 に答える
0

次のようなトリックを使用できます。

    //outside the onCreate:
    boolean resourceIsSet = false;

    //inside the onCreate:
    if(!resourceIsset) {
        setBackgroundResource();
        resourceIsset= true;
    }

または、他の推奨されるようにSharedPreferencesを使用できます

于 2012-01-16T15:17:59.183 に答える