代码之家  ›  专栏  ›  技术社区  ›  kcNeko

如何让alertDialog在我每次运行应用程序时弹出?

  •  2
  • kcNeko  · 技术社区  · 8 年前

    安装应用程序后 alertDialog 将弹出。我希望它有一个编辑文本字段,询问用户的姓名。回答后,它将不再显示。然后,每次我打开应用程序 警报对话框 会像向用户问候一样弹出。

    public class MainActivity extends Activity {
        final Context context = this;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            AlertDialog.Builder alert = new AlertDialog.Builder(context);
            alert.setTitle("Welcome");
            alert.setMessage("Enter Your Name Here"); 
            final EditText input = new EditText(context);
            alert.setView(input);
            alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                } 
            });
    
            AlertDialog alertDialog = alert.create();
            alertDialog.show();
    
            AlertDialog.Builder a_builder = new AlertDialog.Builder(MainActivity.this);
            a_builder.setMessage("Mabuhay!")
                    .setCancelable(true)
                    .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
            AlertDialog alert = a_builder.create();
            alert.show();
        }
    }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   DZDomi    8 年前

    用户在首次打开应用程序时输入姓名后,可以将给定的用户名写入 SharedPreferences 您的申请。

    当用户现在在任何其他时间打开应用程序时,您可以简单地检查您的应用程序的共享引用中是否有条目,并用适当的用户名向用户问候。

    //instance variable in the Mainactivity.class
    private boolean showMessage = true;
    
    SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
    String username = sharedPref.getString("username", null);
    if(username == null){
        //first time user - ask for username
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putString("username", enteredName);
        editor.commit();
        showMessage = false;
    } else if(showMessage) {
        showMessage = false;
        //greet
        AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
        alert.setMessage("Hello " + username + "!")
                .setCancelable(true)
                .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
        alert.create().show();
    }
    
        2
  •  1
  •   Community Egal    7 年前

    您可以使用两种方法来完成此操作。 第一个是通过使用像您的示例一样的警报对话框,您可以在这里找到如何使用对话框。

    Dialogs by Android Developer .

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.dialog_message)
           .setTitle(R.string.dialog_title);
    AlertDialog dialog = builder.create();
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    // Add the buttons
    builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // User clicked OK button
               }
           });
    builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // User cancelled the dialog
               }
           });
    // Set other dialog properties
    ...
    
    // Create the AlertDialog
    AlertDialog dialog = builder.create();
    

    或者,您可以通过在清单中设置对话框主题来创建活动对话框,您可以找到它 here .

    如需进一步解释,请告诉我!