如何只在android中帮助屏幕显示一次

时间:2014-03-07 07:39:55

标签: 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();

 }
 }

3 个答案:

答案 0 :(得分:0)

您可以使用SharedPrefereces设置一个变量来检查您是否向用户显示了对话框,这是一个示例:

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

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

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

因此,下次我们检查共享首选项上的dialogShown值时,true将不会显示该对话框。我相信这是最常见的做法。

答案 1 :(得分:0)

有一个解决方案..

当应用程序第一次启动时,然后将共享首选项保存到应用程序..

现在每次检索共享首选项并检查它是否存在,然后转到下一个屏幕

答案 2 :(得分:-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;
 }
 }