2011-09-05 59 views
0

我需要为三种类型的用户构建应用程序:初学者,中级和高级。每个级别都有一个特定的XML消息(根据用户级别编写),并将根据性能收费。如果用户将级别设置为PreferencesActivity Advanced,则XML加载应用程序以显示来自此用户级别的消息...更改资源(XML字符串)

如何正确构建它?

onCreate()总是调用XML级别并在Preferences中共享?我认为这是一个坏主意......

谢谢! Mateus!

回答

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),并在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(...)

相关问题