在安装时提示用户输入 - Android

时间:2012-02-18 14:18:23

标签: java android dialog android-alertdialog

我正在尝试制作一个仅在安装应用程序时出现的警告框;我需要用户在允许他们使用应用程序之前输入他们的电话号码。我的onCreate()方法中有一个警告对话框,但如果用户点击警告框之外,它就会消失。我已经尝试添加alert.setFinishOnTouchOutside(true),但是我收到错误(向'警报'添加强制转换)。如果用户点击窗外,我该怎么做才能阻止警报取消?感谢

    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Please Enter Your Phone Number");
    alert.setMessage("You must enter your phone number in order to use this application");
    alert.setFinishOnTouchOutside(true);

    // Set an EditText view to get user input 
    final EditText input = new EditText(this);
    alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
    Editable value = input.getText();

     // Do something with value!
     }
    });
     alert.show();

2 个答案:

答案 0 :(得分:2)

  

我正在尝试制作一个仅在安装应用程序时出现的警告框

这是不可能的。您无法在安装时获得控制权。

  

我需要用户在允许他们使用该应用之前输入他们的电话号码。

然后询问他们第一次运行您的应用时的价值,或者您的所需数据是否存在(例如,用户清除了应用的数据)。

  

我的onCreate()方法中有一个警告对话框,但如果用户点击警告框之外,它会消失。

如果他们按下BACK按钮,它也会消失。

  

我已经尝试添加alert.setFinishOnTouchOutside(true),但是我收到错误(向'警报'添加强制转换)

setFinishOnTouchOutside()Activity上的一种方法。它不是AlertDialog.Builder上的方法。

  

如果用户点击窗外,我该怎么做才能阻止取消警报?

setCanceledOnTouchOutside()建立的AlertDialog上致电Builder。这不适用于Builder本身。

当然,如果您最初没有使用AlertDialog会更好,因为您建议的用户体验是用户敌对的。

用户下载并安装您的应用程序,打开它,他们遇到的第一件事是他们可能不理解的对话框。而且,您的目标是他们无法在您的应用中获得实际解释的任何内容:

  • 什么电话号码? (家庭?工作?移动?性行?)
  • 电话号码用于什么?
  • 他们能改变电话号码吗?
  • 他们能设置多个电话号码吗?
  • 他们为什么要首先尊重你的要求?他们为您提供这些个人信息会得到什么?

如果您在onResume()中检测到您没有电话号码,则启动活动以允许他们提供号码,而不是对话框。利用屏幕解释一下您需要该号码的原因,并允许他们获得在线帮助以进一步解释问题。即使他们退出该活动,您原来的onResume()也会再次开火,因此无法继续进行。一个更好的更好的用户体验将允许他们进入应用程序,但禁用需要使用电话号码的东西,就像你可以打开Microsoft Word而不被迫用枪支加载现有的Word doc

答案 1 :(得分:0)

您可以要求用户在用户第一次运行时输入手机,然后您可以将详细信息保存在共享首选项中,如果用户运行应用程序,您可以使用共享首选项值知道他们是否输入了他们的联系信息,如果他们这样做了,让他们完成这项活动并将其转发到下一个活动。

请一览link