2014-03-07 53 views
1

以下代码正常工作并显示帮助屏幕时打开活动但我要永久显示一次,如何帮助屏幕显示一次只在android

我该怎么办?

我应该在代码中添加什么?

我的代码:

public class KhatmMain extends Activity implements OnClickListener{ 
Context ctx; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ctx = this; 
    setContentView(R.layout.khatmmain); 

    showOverLay(); 
. 
. 
. 

} 

private void showOverLay(){ 

final Dialog dialog = new Dialog(ctx, android.R.style.Theme_Translucent_NoTitleBar); 

dialog.setContentView(R.layout.overlay_view); 

LinearLayout layout = (LinearLayout) dialog.findViewById(R.id.overlayLayout); 

layout.setOnClickListener(new OnClickListener() { 

    @Override 

    public void onClick(View arg0) { 

     dialog.dismiss(); 

    } 

}); 

dialog.show(); 

} 
} 
+0

可能重复[如何显示一个一次性的欢迎屏幕?](http://stackoverflow.com/questions/3976406/how-to-display-a-one-time-welcome-screen) –

回答

0

您可以使用SharedPrefereces设置一个变量,将检查,如果你已经所示的对话框尚未给用户,或者不是,这里是一个例子:

SharedPreferences prefs = this.getSharedPreferences("com.you.app", Context.MODE_PRIVATE); 
Boolean dialogShown = prefs.getBoolean("dialogShown", false); 

然后检查dialogShown的值是否为false(您不需要先设置它,因为它将默认为我们调用它的方式),然后在下面的代码中我们执行一些代码,只有如果dialogShown是假的,这意味着我们可以做所有的对话框里面的东西是有条件的:

if(!dialogShown){ 
    //Your show dialog code 
    prefs.edit().putBoolean("dialogShown",true).commit(); 
} 

所以接下来我们检查的共享偏好的dialogShown值,时间会很true,以不显示对话框。我相信这是最常见的做法。

+0

okey,那就对了! – user3325172

0

有一个解决方案..

当应用程序第一次开始,然后保存每一次您检索共享偏好和检查共享偏好的应用..

现在,如果它的存在,然后移动到下一个屏幕

+0

这是不相关的例子,但在这个例子中,快捷方式是在应用程序开始时创建一个单独的应用程序http://pulse7.net/android/android-application-shortcut-home-screen/ –

-1

使用此代码:

public class KhatmMain extends Activity implements OnClickListener{ 
Context ctx; 
Boolean showOneTime = true; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ctx = this; 
    setContentView(R.layout.khatmmain); 

    showOverLay(); 
. 
. 
. 

} 

private void showOverLay(){ 
    if (showOneTime == false) { 
     return; 
    } 
final Dialog dialog = new Dialog(ctx, android.R.style.Theme_Translucent_NoTitleBar); 

dialog.setContentView(R.layout.overlay_view); 

LinearLayout layout = (LinearLayout) dialog.findViewById(R.id.overlayLayout); 

layout.setOnClickListener(new OnClickListener() { 

    @Override 

    public void onClick(View arg0) { 

     dialog.dismiss(); 

    } 

}); 

dialog.show(); 
showOneTime = false; 
} 
}