2012-02-18 7 views
0

アプリがインストールされているときにのみ表示されるアラートボックスを作成しようとしています。ユーザーがアプリを使用する前に電話番号を入力する必要があります。私はonCreate()メソッドで警告ダイアログを持っていますが、ユーザが警告ボックスの外をタップすると、それは消えます。私はalert.setFinishOnTouchOutside(true)を追加しようとしましたが、エラーが発生します(「警告」にキャストを追加します)。ユーザーがウィンドウの外をタップするとアラートがキャンセルされるのを止めるには何が必要ですか?おかげインストール時に入力を求めるプロンプトユーザ - Android

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

私はアプリが

インストールされている。これは可能でない場合にのみ表示されます警告ボックスを作成しようとしています。あなたはインストール時にコントロールを取得しません。

アプリを使用するには、電話番号を入力する必要があります。

次に、アプリの最初の実行時に値を確認するか、目的のデータがない(ユーザーがアプリのデータを消去したなど)場合は、その旨を尋ねます。

私はonCreate()メソッドで警告ダイアログを持っていますが、ユーザーが警告ボックスの外をタップすると、遠ざかります。

[戻る]ボタンを押しても消えます。

あなたが見ることができるように私はalert.setFinishOnTouchOutside(true)を追加しようとしましたが、私はエラー( '警告' にキャストを追加)

setFinishOnTouchOutside()Activityの方法で取得します。 AlertDialog.Builderの方法ではありません。

ユーザーがウィンドウの外をタップすると、アラートがキャンセルされるのを止めるには何が必要ですか?

によって構築されたAlertDialogsetCanceledOnTouchOutside()を呼び出します。これはBuilderで利用できません。

提案されたUXがユーザーに対して敵対的であるため、最初にAlertDialogを使用しなかった方が良いでしょう。

ユーザーがあなたのアプリケーションをダウンロードしてインストールし、それを開き、最初に遭遇するのは理解できないダイアログボックスです。

  • どの電話番号:そして、あなたの目標は、彼らが実際にを説明するだろうあなたのアプリで何も得ることができないということでしょうか? (自宅?仕事?携帯電話?セックスライン?)
  • 電話番号はどのように使用されますか?
  • 電話番号を変更することはできますか?
  • 複数の電話番号を設定できますか?
  • なぜ彼らは最初にあなたの要求に敬意を表しますか?そのような個人情報を提供することで得られるものは何ですか?

onResume()の中に電話番号がないことが検出された場合は、その番号を入力できるように活動を開始してください。画面を利用して、番号が必要な理由を少し説明し、問題をさらに説明するためにオンラインヘルプにアクセスできるようにします。たとえその活動から戻ってきたとしても、オリジナルのonResume()は再び発砲するので、さらに進めることはできません。さらにの方が良い UXの場合は、アプリケーションにそれらを許可し、電話番号が必要なものを無効にすることができます.Growpointを強制しないでMicrosoft Wordを開いて既存のWord文書を読み込むことができます。

+0

を持っていてください!もう少し詳しく説明できますか?ありがとう – mkyong

+0

@Alex:私は結果を 'show()'と呼びます(ダイアログを表示するだけでなく、 'AlertDialog'を返します)。それは遅すぎる可能性があります。その場合、 'ビルダー'で 'create()'を呼び出し、 'create()'によって返された 'AlertDialog'で' setCanceledOnTouchOutside() 'を呼び出し、次に' show () 'ダイアログを開きます。 – CommonsWare

0

ユーザーに初めて電話をかけているときに電話を入力してから、共有設定で詳細を保存することができます。次にユーザーがアプリを実行する場合は共有の設定値彼らが連絡先情報を入力したかどうかを知るために、もしそうであれば、このアクティビティを通過させて次のアクティビティに転送させてください。

まさに、私は上記のコードで `)(` setCanceledOnTouchOutsideを置く一目link

関連する問題