允许用户更改默认屏幕

时间:2011-10-22 00:35:58

标签: android

我的应用程序允许用户在每次应用启动时选择默认屏幕,我使用SharedPreferences执行此操作。应用程序提示他们在安装后第一次启动时选择一个屏幕,该部分有效。但是,在允许用户更改默认屏幕的应用程序内部,我使用相同的代码,它从不存储更改。我需要更改什么才能使其正确保存?

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Choose a Default Screen");
        builder.setItems(R.array.openChoices, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                SharedPreferences settings = getPreferences(0);
                SharedPreferences.Editor editor = settings.edit();
                editor.putInt("start", item);
                editor.commit();
                //Mech = 0, E&M = 1
                int choice = getPreferences(0).getInt("start", 3);
                if(choice == 0){
                    Toast.makeText(setscreen.this, "Mechanics is now the default screen", Toast.LENGTH_SHORT).show();
                    Intent myIntent = new Intent(setscreen.this, physics.class);
                    startActivity(myIntent);             
                }
                else if(choice == 1){
                    Toast.makeText(setscreen.this, "E&M is now the default screen", Toast.LENGTH_SHORT).show();
                    Intent myIntent = new Intent(setscreen.this, physicsem.class);
                    startActivity(myIntent);
                }
            }
        });

2 个答案:

答案 0 :(得分:0)

尝试使用类似的内容来获取对共享首选项对象的引用:

myPrefs = PreferenceManager.getDefaultSharedPreferences(ScreenSaverActivity.this);

我不确定你完成它的方式是行不通的,但是我从来没有看到过这样做只是传递0。

答案 1 :(得分:0)

你确定每次都在呼叫editor.commit();吗?