2017-12-05 41 views
0

私は別のクラスを作ることに頼ることなく、簡単な2ボタンアラートダイアログを作ろうとしています。ダイアログを構築するために使用しているAlertDialog.Builderクラスには、ダイアログにボタンを追加する3つのメソッドがあります。AlertDialog.Builderがボタンを制限するのはなぜですか/どのように動作しますか?

setPositiveButton(...) 
setNegativeButton(...) 
setNeutralButton(...) 

なぜこのダイアログボックスはこの3ボタン制限をハードコードしていますか?また、ボタンをポジティブ、ネガティブ、ニュートラルとして設定する必要があるのはなぜですか?ネガティブボタンプレスは、ポジティブまたはニュートラルのボタンプレスと比べてどのような効果がありますか?

私は明らかに何か重要なものがありませんが、これはボタンを追加する処理に悪い方法のようですか?なぜなら、本当に肯定的または否定的であると考えられるべきではない2つ(または複数のボタン)が必要な場合はどうでしょうか?ダイアログで複数のニュートラルボタンを追加することはできません。

+0

ポジティブ/ネガティブ/中性 – elmorabea

答えて

0

標準のアラートダイアログのオプションは、プラス、ニュートラル、またはマイナスです。 ボタンの名前に従って肯定または否定アクションを処理すると、設計者のガイドラインに従ってレイアウトが設定され、新しいAndroidバージョンで変更された場合は常に提案された順序に従います。

もちろん、あなたが好きな順番でOnClickListenerを設定することができます。

そして、あなたは以上の3つのボタンが必要な場合には、このようなもので、カスタムビューを膨らませることができます。

LayoutInflater inflater = getActivity().getLayoutInflater(); 
View dialogView = inflater.inflate(R.layout.alert_dialog_custom_layout, null); 
dialogBuilder.setView(dialogView); 
0

ポートレートモードでの携帯電話の画面の限られた幅に主に起因する三つのボタンの制限があります。 AlertDialogのように、すべてのボタンが一列に配置されているとします。 3つのボタンを超えて幅が足りなくなると、テキストが切り捨てられ、間違ったボタンを誤って押すことになります。 3つ以上のボタンが必要な場合は、より多くのボタンを備えたカスタムダイアログが必要になるか、ユーザーの潜在的な画面サイズの制限を念頭に置いて、ユーザーの入力を正確に処理する方法を再考する必要があります。

同様に、肯定的、中立的および否定的な3つの限定されたオプションの理由は、オペレーティングシステム全体でUXの整合性を提供するためです。アンドロイド4.0と5.0のそれと

Android 1.5 dialog

:正と負のボタンの順序が逆転しているか

Android 4.0 dialogs enter image description here

ノートのAndroid 1.5からの警告ダイアログを考えてみましょう。これは、Android 3.0の「Holo」UIとして導入された意図的なデザイン決定でした。 「ポジティブ」ボタンと「ネガティブ」ボタンを割り当てることで、これらのボタンの位置は、アプリケーション内でコードを変更することなく、ユーザーのOSバージョンのUXに合わせて変更することができます。

深い読み:あなたは、あなたのニーズがで満たされていない場合、あなたが好きなレイアウトでのCustomViewを設定することができます

関連する問題