2017-05-05 29 views
0

我在我的第一次活动中有一个按钮,显示“继续”并开始新的活动(MainActivity意图),但我发现可以通过重新启动应用程序跳过该按钮和第一次活动。所以我想确保跳过这个活动是不可能的。如何检查首先是否被跳过?

这就是我一直在思考:

firstEntry.java - 在这种方法中,我在共享偏好将新值确认firstrun一直没跳过(只添加如果值按钮被点击)。在MainActivity

btn.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
SharedPreferences.Editor editor = sharedpreferences.edit(); 
editor.putBoolean(skip, false); 
editor.commit(); 
Intent i = new Intent(getApplicationContext(), MainActivity.class); 
startActivity(i); 
finish(); 
} 

onCreate()方法

boolean skipper = prefs.getBoolean(skip, false); 
     if(skipper == true){ 
      Intent i = new Intent(getApplicationContext(), firstEntry.class); 
      startActivity(i); 
     } 

的onResume功能:

@Override 
    protected void onResume() { 
     super.onResume(); 
     if (prefs.getBoolean("firstrun", true)) {// Checks if application is on its first run 
      Intent i = new Intent(getApplicationContext(), firstEntry.class); 
      startActivityForResult(i, 1); 
      prefs.edit().putBoolean("firstrun", false).commit(); 
      finish(); 
     } 
    } 

如何检查是否共享偏好方法 “firstrun” 已通过使用共享偏好跳过继续按钮值?

+1

我不是很清楚你想要实现什么 – ELITE

+0

@ELITE防止跳过第一次活动出去点击继续按钮 –

回答

1

改变下列中btn.setOnClickListener线(新View.OnClickListener()

editor.putBoolean(skip, false); 

editor.putBoolean(skip, true); 

然后在onCreate()方法firstEntry.java

boolean skipper = prefs.getBoolean(skip, false); 
    if(skipper == true){ 
     Intent i = new Intent(getApplicationContext(), MainActivity.class); 

     Log.i("firstEntry.java","skipped the activity"); 
     startActivity(i); 
} 
+0

它的工作虽然,你犯了一个错误,而不是在第一条目的if和意图使船长== false,但我想你误会了我。 –

+0

但如果你使skipper == false,firstEntry.java永远不会跳过 –

+0

我想确保它永远不会从主入口跳过而不是从firstEntry –