我想添加主題到我的應用程序。爲此,我添加了顏色選擇器對話框。如何動態設置主題?
當用戶將選擇從應用程序應該改變的顏色選擇器的主題顏色,我想改變導航欄和浮動按鈕的顏色。
我如何動態設置的主題?
謝謝。
編輯:
設置活動。
public class Settings extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final ColorPickerDialog colorPickerDialog = new ColorPickerDialog();
colorPickerDialog.initialize(R.string.dialog_title, new int[]{Color.CYAN, Color.LTGRAY, Color.BLACK, Color.BLUE, Color.GREEN, Color.MAGENTA, Color.RED, Color.GRAY, Color.YELLOW}, Color.YELLOW, 3, 2);
colorPickerDialog.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener() {
@Override
public void onColorSelected(int color) {
Toast.makeText(Settings.this, "selectedColor : " + color, Toast.LENGTH_SHORT).show();
}
});
LinearLayout theme = (LinearLayout)findViewById(R.id.theme);
theme.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
colorPickerDialog.show(getSupportFragmentManager(), "colorpicker");
}
});
}
}
請檢查編輯的問題。這是我的設置活動。你能指導一下那個代碼嗎?謝謝。 @Valentin Kuhn – user5881997
對不起,我昨天沒有任何時間。 我再次查找它,它真的好像沒有辦法動態創建主題。我建議只給出不同的預定義主題(用XML定義)並應用這些主題。解決方法是手動設置顏色,但這不會真的改變主要/重音顏色... 我給我寫了一個方法來應用基於ENUM的不同主題(這裏是:RED,GREEN,BLUE),請參閱下一條評論 –
無法將其放入評論中,而是編輯我的答案 –