我在使用自定义对话框时遇到问题,我创建了自定义对话框,它可以正常工作,但是如果用户单击按钮,则无法再显示一次,我对此感到困惑。就像有一个名为“评分”的按钮,当用户单击该按钮时,自定义对话框将永远不会再次打开。因此,如果有人知道该怎么做,请帮助我
这是我的代码
final Dialog dialogrul = new Dialog(MainActivity.this);
dialogrul.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialogrul.getWindow();
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
dialogrul.setContentView(R.layout.exitlayout);
Button rating = dialogrul.findViewById(R.id.ratingok);
Button dialogok = dialogrul.findViewById(R.id.exityes);
final Button dialognotok = dialogrul.findViewById(R.id.exitno);
dialogrul.setCancelable(true);
dialogrul.show();
dialogok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity.this.onSuperBackPressed();
finish();
}
});
rating.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent j = new Intent(android.content.Intent.ACTION_VIEW);
j.setData(Uri.parse("https://play.google.com/store/apps/details?"));
startActivity(j);
}
});
dialognotok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogrul.cancel();
}
});
}
最佳答案
如果您要确定用户是否在Playstore中对应用程序进行了评分,则没有适当的方法,这是有充分理由的。如果应用程序能够确定对应用程序进行评分的用户,则他们可以为高评分提供奖励,而为低评分提供“惩罚”。
取而代之的是,
让用户使用该应用5次,以获得良好的使用体验。
在第6次运行时提示用户使用Yes
,Later
和Never
选项对其进行评分。稍后将其延迟“ n”(您选择的)天。
现在,要确定用户之前选择的是Yes
还是Never
,可以将值存储在SharedPreference
中。
在首选项中设置值:
// MY_PREFS_NAME - a static String variable like:
//public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("rating_choice", user_choice);
editor.apply();
从首选项中检索数据:
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
String name = prefs.getString("rating_choice", "Later");//"Later" is the default value.
参考:1,2,3