gpt4 book ai didi

java - 如何更改 Android Activity 的背景颜色

转载 作者:行者123 更新时间:2023-12-01 23:07:18 25 4
gpt4 key购买 nike

我想使用 AlertDialog 更改 Activity 的背景颜色。这是我所做的:

private SharedPreferences prefs;    
private static final String SELECTED_ITEM = "SelectedItem";
private Editor sharedPrefEditor;

btnchangeColor = (ImageButton) findViewById(R.id.btnchangeColor);
btnchangeColor.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

final CharSequence[] items={"Red","Green","Blue", "Yellow", "#EE82EE"};

AlertDialog.Builder builder = new AlertDialog.Builder(
ContentView_2.this);

builder.setTitle("Pick a Color");
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {}
});

builder.setSingleChoiceItems(items, getSelectedItem(), new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
wvContent = (WebView) findViewById(R.id.wvContent);
//LinearLayout ll=(LinearLayout)findViewById(R.id.wvContent);

if("Red".equals(items[which]))
{
wvContent.setBackgroundColor(Color.RED);
}
else if("Green".equals(items[which]))
{
wvContent.setBackgroundColor(Color.GREEN);
}
else if("Blue".equals(items[which]))
{
wvContent.setBackgroundColor(Color.BLUE);
}
else if("Yellow".equals(items[which]))
{
wvContent.setBackgroundColor(Color.YELLOW);
}
else if("#EE82EE".equals(items[which]))
{
wvContent.setBackgroundColor(Color.rgb(184,184,184));
}
saveSelectedItem(which);
}
});
builder.show();

}});
}

private int getSelectedItem() {
if (prefs == null) {
prefs = PreferenceManager
.getDefaultSharedPreferences(this);
}
return prefs.getInt(SELECTED_ITEM, -1);
}

private void saveSelectedItem(int which) {
if (prefs == null) {
prefs = PreferenceManager
.getDefaultSharedPreferences(this);
}
sharedPrefEditor = prefs.edit();
sharedPrefEditor.putInt(SELECTED_ITEM, which);
sharedPrefEditor.commit();
}

我还将此代码添加到 OnCreate 中:

wvContent = (WebView) findViewById(R.id.wvContent); 
wvContent.setBackgroundColor(getSelectedItem());

颜色已选择,并且 Web View (wvContent) 更改为所选颜色,但这不会保存到共享首选项和/或从共享首选项加载。当 Activity 重新启动时,它会返回到默认颜色。

所以问题是:如何正确地将所选颜色保存到 SharedPreferences 并在 Activity 重新启动时加载它?

非常感谢您的帮助。

最佳答案

目前,您正在 SharedPreferences 中保存所选项目的位置而不是颜色代码。这样做:

wvContent = (WebView) findViewById(R.id.wvContent);
int bg_color=Color.TRANSPARENT;
if("Red".equals(items[which]))
{
wvContent.setBackgroundColor(Color.RED);
bg_color=Color.RED;
}
else if("Green".equals(items[which]))
{
wvContent.setBackgroundColor(Color.GREEN);
bg_color=Color.GREEN;
}
........
// save color in SharedPreferences
saveSelectedItem(bg_color);

现在 getSelectedItem() 方法返回先前从微调器中选择的值的颜色代码。

关于java - 如何更改 Android Activity 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22574678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com