更改资源(XML字符串)

时间:2011-09-05 18:54:00

标签: android

我需要为三种类型的用户构建一个应用程序:Beginner,Intermediate和Advanced。每个级别都有一个特定的XML消息(根据用户级别编写),并将按性能收费。如果用户将级别PreferencesActivity Advanced,XML加载应用程序设置为显示来自此用户级别的消息...

如何正确构建它?

onCreate()总是调用XML级别并在Preferences Shared中预先配置?我认为这是一个坏主意......

谢谢! 马特乌斯!

1 个答案:

答案 0 :(得分:2)

在第一次运行时,您可以让用户使用3个不同的按钮选择是初级,中级还是高级。然后在onClick保存到他们选择的SharedPreferences中,然后在onCreate中获取他们选择的内容并进行相应设置。这就是我的意思:

Button beginnerButton = (Button)findViewById(R.id.beginnerButton);
beginnerButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(); 
                            SharedPreferences.Editor editor = pref.edit();
                          editor.putInt("level", 1);
        }
    }); 

您可以对其他两个按钮执行相同的操作,但请设置中间putInt(..., 2)和高级putInt(..., 3)

然后在onCreate

中的PreferenceActivity中
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences();
Int level = pref.getInt("level", 1);
if (level==1)
   addPreferencesFromResource(R.layout.beginner);
else if (level==2)
   addPreferencesFromResource(R.layout.intermediate);
else addPreferencesFromResource(R.layout.advanced);

我认为这可能是处理它的最简单方法。

但是,如果必须设置单击侦听器和事物,则最好使用具有相同前提的三个不同活动。您将有一个开始屏幕,它将从sharedprefs获得“级别”,然后根据返回的内容获得startActivity(...)