我需要为三种类型的用户构建一个应用程序:Beginner,Intermediate和Advanced。每个级别都有一个特定的XML消息(根据用户级别编写),并将按性能收费。如果用户将级别PreferencesActivity Advanced,XML加载应用程序设置为显示来自此用户级别的消息...
如何正确构建它?
onCreate()总是调用XML级别并在Preferences Shared中预先配置?我认为这是一个坏主意......
谢谢! 马特乌斯!
答案 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
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(...)
。