2011-05-05 14 views
7

我有一个应用程序与2活动,首选项和主要活动,我需要首选项屏幕显示第一次运行应用程序,使用户可以做一些配置。我已经检查了这个主题的答案,他们似乎不是很清楚,但我收集它必须检查有共享首选文件是空的。显示首选项屏幕第一次运行应用程序和相关问题

有人可以给我一个代码来解决这个问题,并在哪些活动,我会把代码? 另外我还处于发展阶段,所以我已经有了我的偏好设置,我该如何解决这个问题?

由于提前

回答

2

我假设你正在运行的模拟器,当你开始你有模拟器当你启动它的时候选择“擦除保存的数据”,这样就像你刚启动应用程序一样。或者,您可以进入设置 - >应用程序 - >您的应用程序 - >擦除数据。

关于您的编码解决方案,目前我没有任何方便,但您应该做的是开始您的主要活动,运行一个过程/函数来检查sharedpreference文件是否为空,以及它是否为空是开始偏好活动,否则运行你的主要活动。或者,您可以不检查文件是否为空,而是查看您正在查找用户输入的值(例如UserID)是否为空。如果该值不为空,则表示应用程序可以继续。

+0

我如何找到这个选择来“擦除保存的数据”? – ycomp 2012-02-21 03:02:31

+0

我在我的回答中声明,您可以在应用程序设置中的仿真器中,像我之前提到的那样,或者从Android SDK/AVD管理器中完成。当你启动设备时,可以选择“擦除用户数据” – Sorean 2012-02-21 04:47:16

+0

谢谢..我很困惑,想在模拟器本身内寻找它...(用于“擦除保存的数据”),现在我知道要寻找它在AVD ...唯一的问题是,我无法找到它... – ycomp 2012-02-21 04:53:04

14

1)当你的主要活动开始检查与默认设置为false布尔偏好。如果它是假的,启动你的偏好活动,如果它是真的,那么你知道你已经保存它是真的!

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE); 
boolean haveWeShownPreferences = prefs.getBoolean("HaveShownPrefs", false); 

if (!haveWeShownPreferences) { 
    // launch the preferences activity 
} else { 
    // we have already shown the preferences activity before 
} 

2)在你的喜好活性保存的true值相同布尔偏好onCreate

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE); 
SharedPreferences.Editor ed = prefs.edit(); 
ed.putBoolean("HaveShownPrefs", true); 
ed.commit(); 
+0

谢谢,我现在正在测试它,但在MODE_PRIVATE出现错误。这个是来做什么的? – Amanni 2011-05-06 00:10:15

+0

对不起,它应该是'Context.MODE_PRIVATE' – 2011-05-06 04:57:50

+0

+1来解决我的疑问...谢谢。这段代码帮助了我。 – 2012-03-12 13:08:24

1

我在我的主要活动与该位的代码排序了这一点

if (prefs.getString("edittextpref", null) == null) 
    { 
     startActivity(new Intent(this, Preferences.class)); 
     return; 
    } 

} 

它只是检查,如果你的价值观之一是空的,但是你需要把此在的onCreate要不时的底部你回到主页面,它会变成空白。

0

我正在做这样的事情。它的作品适合我。

String path = "//data//data//"+this.getPackageName()+"//shared_prefs//feedbackpref.xml"; 
boolean exists = (new File(path)).exists(); 
if (exists) { 
    introWindowNavigate=false;         
} 
相关问题