0

私はこれが非常に単純であることを知っていますが、ここで明示的に答えられたことはありません: Want to display a dialog only after the app been installed . MainActivity クラス内で作成できるダイアログ呼び出しを表示する例を教えてください。

具体的には、その値が解析データベース内に存在するかどうかを確認する必要があります。その場合は、ユーザーが続行できるようにします。それ以外の場合は、ダイアログ ボックスを閉じずに、新しいユーザー名が追加されるのを待ちます。

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 に答える