选择样式的选项始终默认为最后一个样式选项

时间:2012-11-07 15:27:00

标签: android

我正在尝试创建一个允许用户选择背景颜色的选项。但是,当用户选择一个选项时,它默认为绿色。如果我卸载应用程序,背景颜色默认为绿色。如果我删除绿色选项,则默认为上面的颜色(蓝色)。我无法弄清楚我哪里出错了。任何建议都会非常感激。

public class UserMenu extends Activity implements OnClickListener {
Button preview;
Spinner spinnerColor;
SharedPreferences preferences;
public static String theme = "Blue";
    @Override
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         preferences = getSharedPreferences("StylePref", 0);
         theme = preferences.getString("THEME", "Red");
        if(theme.equals("Red"));
        {
            setTheme(R.style.Theme_Red);
        }
        if(theme.equals("Blue"));
        {
            setTheme(R.style.Theme_Blue);
        }
        if(theme.equals("Green"));
        {
            setTheme(R.style.Theme_Green);
        }

        setContentView(R.layout.activity_user_menu);
        System.out.println(theme);
        spinnerColor = (Spinner) findViewById(R.id.spinnerColorMenu);
        preview = (Button)findViewById(R.id.previewButton);
           preview.setOnClickListener(this);

    }

    public void onClick(View v)


    {
        SharedPreferences.Editor preferencesEditor = preferences.edit();
        String bgColor = spinnerColor.getSelectedItem().toString();
        preferencesEditor.putString("THEME", bgColor);
        preferencesEditor.commit();

        if(bgColor.equals("Red"))
         {
            //Intent intent = getIntent();
            //intent.putExtra("Theme", "Red");
          finish();
          //startActivity(intent);
         }
         else if(bgColor.equals("Blue"))
         {
             Intent intent = getIntent();
            //intent.putExtra("Theme", "Blue");
           finish();
           startActivity(intent);
         }

         else if(bgColor.equals("Green"))
         {
             Intent intent = getIntent();
            //intent.putExtra("Theme", "Green");
           finish();
           startActivity(intent);
         }
    }
}

2 个答案:

答案 0 :(得分:1)

if(theme.equals("Green"));

删除if块末尾的分号。

答案 1 :(得分:1)

你有一些分号不合适。

        if(theme.equals("Red")); <--- Remove this ;
        {
            setTheme(R.style.Theme_Red);
        }
        if(theme.equals("Blue")); <--- Remove this ;
        {
            setTheme(R.style.Theme_Blue);
        }
        if(theme.equals("Green")); <--- Remove this ;
        {
            setTheme(R.style.Theme_Green);
        }