アプリの設定にカラーピッカー設定を追加して、ユーザーがActionBar
(使用しているActionBarSherlock
)の背景色を選択できるようにしました。理想的には、ユーザーにアプリを再起動させずに色を変更したいと思います。これはonResume
、すべてのActivity
とで色を変更するコードを追加することを意味すると思いFragment
ます。ただし、最初にアクティビティを押したときに色の変更は機能しますが、デバイスの戻るボタンを使用するか、ActionBar
それ自体を使用してアクティビティに戻ると、色が設定されていないように見え、透明になります。
これは、背景色を設定するために使用しているコードです。私はそれに追加してみonCreate
ましたonResume
:
public class MyActivity extends SherlockActivity {
@Override
public void onCreate(final Bundle icicle)
{
super.onCreate(icicle);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(PreferenceManager.getDefaultSharedPreferences(this).getInt("app_color", getResources().getColor(R.color.app_color))));
}
@Override
public void onResume()
{
super.onResume();
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(PreferenceManager.getDefaultSharedPreferences(this).getInt("app_color", getResources().getColor(R.color.app_color))));
}
}
app_color
はカラーピッカープリファレンスの名前であり、colors
値ファイルに保存されているデフォルトの色もあります。TextView
同じ問題がなく、色が保持されているフッターもあります。