0

我知道这很简单,但这里从未明确回答过:Want to display a dialog only after after the app was 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>

4

2 回答 2

1

检查首选项是否返回“默认值”,如果是,则显示一个对话框并将这些值提交给首选项

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();
}
于 2013-06-15T19:13:33.963 回答
0

好吧,它在那个问题中得到了回答!

使用 SharedPreference 存储 firstrun 值,并根据该值检查您的启动活动。如果设置了值,则无需显示对话框。否则,显示对话框并将 firstrun 标志保存在 SharedPreference 中。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();
}

}

于 2013-06-15T19:04:41.147 回答