我需要为三种类型的用户构建应用程序:初学者,中级和高级。每个级别都有一个特定的XML消息(根据用户级别编写),并将根据性能收费。如果用户将级别设置为PreferencesActivity Advanced,则XML加载应用程序以显示来自此用户级别的消息...更改资源(XML字符串)
如何正确构建它?
onCreate()总是调用XML级别并在Preferences中共享?我认为这是一个坏主意......
谢谢! Mateus!
我需要为三种类型的用户构建应用程序:初学者,中级和高级。每个级别都有一个特定的XML消息(根据用户级别编写),并将根据性能收费。如果用户将级别设置为PreferencesActivity Advanced,则XML加载应用程序以显示来自此用户级别的消息...更改资源(XML字符串)
如何正确构建它?
onCreate()总是调用XML级别并在Preferences中共享?我认为这是一个坏主意......
谢谢! Mateus!
第一次运行时,您可以让用户使用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)
,并在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);
我先进你PreferenceActivity putInt(..., 3)
然后d说这可能是最简单的方法来处理它。
但是,如果您必须设置点击侦听器和事物,则最好在相同的前提下使用三种不同的活动。您将拥有一个启动屏幕,它将根据返回的内容从共享偏好获取“级别”,然后返回startActivity(...)
。