我知道这很简单,但这里从未明确回答:Want to display a dialog only once after the app been installed。有人可以举例说明我可以在MainActivity类中进行的对话调用吗?
具体来说,我需要检查Parse数据库中是否存在该值。如果是,则允许用户继续。否则,请不要关闭对话框并等待它们添加新用户名。
XML看起来像这样:
<PreferenceCategory android:title="@string/pref_user_profile" >
<EditTextPreference
android:key="prefUsername"
android:summary="@string/pref_user_name_summary"
android:title="@string/pref_user_name" />
</PreferenceCategory>
答案 0 :(得分:1)
检查偏好是否已返回&#34;默认,&#34;如果是,则显示一个对话框并将这些值提交给首选项。
Editor editor = prefs.edit();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String p = prefs.getString("prefUsername", "default");
if (p.equals("default")) {
createDialogBox();
p = prefs.getString("prefUsername", "default");
}
public void createDialogBox()
{
final EditText et = new EditText(this);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
// set title
alertDialogBuilder.setTitle("Please give Input");
// set dialog message
alertDialogBuilder
.setMessage("Input")
.setView(et)
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String c = et.getText().toString().trim();
editor.putString("prefsUsername", c);
editor.commit();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
答案 1 :(得分:0)
使用SharedPreference存储第一个值,并根据该值检入启动活动。如果设置了该值,则无需显示该对话框。如果是,则显示对话框并在SharedPreference中保存firstrun标志。 ex(在您的启动活动中):
public void onCreate(){
boolean firstrun = getSharedPreference("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true);
if (firstrun){
...Display the dialog
// Save the state
getSharedPreference("PREFERENCE", MODE_PRIVATE)
.edit()
.putBoolean("firstrun", false)
.commit();
}
}