简体   繁体   English

仅显示一次对话框

[英]showing a dialog just once

i have a dialog window that have to containers and two on click listeners to close the dialog and i want i to be displayed just once and i use this code but it doesn't display it at all!! 我有一个必须容纳容器的对话框窗口和两个单击侦听器以关闭对话框,我希望我只显示一次,并且我使用此代码,但根本不显示它!

any help? 有什么帮助吗?

  SharedPreferences setting = getSharedPreferences("dialogprefs", 0); final SharedPreferences.Editor editor = setting.edit(); { final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.setContentView(R.layout.hint1); dialog.setCanceledOnTouchOutside(true); dialog.setTitle("Hint"); View masterView = dialog.findViewById(R.id.LinearLayout1); masterView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); editor.putString("dialogshow", "0".toString()); editor.commit(); } }); View masterView1 = dialog.findViewById(R.id.imageView1); masterView1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); editor.putString("dialogshow", "0".toString()); editor.commit(); } }); if (setting.getString("dialogshow" , "0").equals("0")) { dialog.dismiss(); } else { dialog.show(); } } 

Assuming that setting.getString("dialogShow", "0") means something like getString(name, defaultValue) then the default is "0" if the preference hasn't been set yet, which means the dialog will never be shown even once. 假设setting.getString("dialogShow", "0")含义类似于getString(name, defaultValue)则如果尚未设置首选项getString(name, defaultValue)则默认值为"0" ,这意味着即使一次也不会显示该对话框。 Perhaps you mean setting.getString("dialogShow", "1") . 也许您的意思是setting.getString("dialogShow", "1")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM