ユーザーがコメントを送信できるように AlertDialog を膨らませています。かなり単純です。しかし、次の Lint 警告が表示されます。
レイアウトは、API >= 14 に対して間違ったボタン順序を使用します: 逆の順序で layout-v14/chat_comment_dialog.xml ファイルを作成します: キャンセル ボタンは左側にある必要があります (以前は「@string/send | キャンセル」でしたが、「キャンセル | @」にする必要があります)。文字列/送信")
ええ、これが解決策です。API >= 14 の特定のレイアウトを作成し、順序を逆にします。しかし....本当に?これは本当に公式の提案ですか?一部のデバイスで 1 つの順序を設定し、別のデバイスで別の順序を設定するには? ユーザーとして、私は非常に混乱していると思います。この Lint のアドバイスを無視するか、そうでなければ、一連のデバイスに対してこの新しいパターンに従う必要があります (かなり混乱すると思います)。
とにかく、ここにレイアウトがあります:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp" >
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username"
android:singleLine="true" />
<EditText
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="180dp"
android:gravity="top|left"
android:hint="@string/review" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingRight="4dp"
android:text="@string/send"
android:textSize="18sp" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="4dp"
android:text="@android:string/cancel"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
ちなみに、Builder のデフォルト ボタンに設定した onClickListener はダイアログを無視するため、AlertDialog.Builder ではなく XML で Buttons をインフレートする必要があります (おそらく、この方法でボタンは自動的に並べ替えられます)。ダイアログを自分で制御するには、その動作を回避する必要があります。