0

これは私のダイアログコードです

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

        final FrameLayout frameView = new FrameLayout(this);
        builderofme.setView(frameView);

       builderofme.setCancelable(true);



        builderofme.setPositiveButton(" Yes ", new OkOnClickListener());
        builderofme.setNegativeButton(" No ", new CancelOnClickListener());
        final AlertDialog alertDialog = builderofme.create();
        LayoutInflater inflater = alertDialog.getLayoutInflater();
        View dialoglayout = inflater.inflate(R.layout.myediteddialog, frameView);
        alertDialog.show();

コードは完全に機能しています。しかし、はいボタンといいえボタンに白い背景を使用したい.現在、このようになっています..

ここに画像の説明を入力

これは私の myediteddialog.xml ファイルです

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="vertical"
android:background="@drawable/delete"
 >

<TextView
    android:id="@+id/editeddialogboxtextview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/background_dark"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="Do You Want To Delete?"
    android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>
4

6 に答える 6

0

私はいくつかのxmlを使用して、他に何も変更せずに、私のやり方でこれを行いました.解決策を探している皆さんと共有することを考えました.

最初に、ボタン用のカスタム セレクター ドローアブル xml ファイルを作成しました。

ここにあります

  <selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:state_pressed="true" >
     <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
         <stroke android:width="1dip" android:color="#83776b" />
         <gradient  android:angle="-90"  android:startColor="#5f4427" android:endColor="#cbb59d"  />           
     </shape>
 </item>
<item android:state_focused="true">
     <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
         <stroke android:width="1dip" android:color="#83776b" />
         <solid  android:color="#92806c"/>      
     </shape>
 </item> 
<item >
    <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
         <stroke android:width="1dip" android:color="#83776b" />
         <gradient  android:angle="-90"  android:startColor="#cbb59d"    android:endColor="#92806c" />           
     </shape>
   </item>
</selector>

次に、私のアクティビティにこの2行を含めました

 Button b = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
        if(b != null)
                   b.setBackgroundDrawable(getResources().getDrawable(R.drawable.dialogbutton));

 Button c = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
        if(c != null)
                   b.setBackgroundDrawable(getResources().getDrawable(R.drawable.dialogbutton));

うまくいった私にとっての簡単な解決策。

于 2013-09-24T11:36:37.650 に答える
0

ここで、レイアウトファイルで2つのボタンを宣言できますmyediteddialog.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="vertical"
android:background="@drawable/delete"
 >

<TextView
    android:id="@+id/editeddialogboxtextview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/background_dark"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="Do You Want To Delete?"
    android:textAppearance="?android:attr/textAppearanceMedium" />


<Button
        android:id="@+id/stopButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="ffffff"
       android:text="Yes" />

    <Button
        android:id="@+id/playButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:background="ffffff"
        android:text="No" />

</RelativeLayout>
于 2013-09-24T11:13:56.027 に答える
0

次の例を見ることができます。

カスタム レイアウトの作成

ダイアログにカスタム レイアウトが必要な場合は、AlertDialog.Builder オブジェクトで setView() を呼び出して、レイアウトを作成し、それを AlertDialog に追加します。

デフォルトでは、カスタム レイアウトがダイアログ ウィンドウ全体に表示されますが、AlertDialog.Builder メソッドを使用してボタンとタイトルを追加することもできます。

于 2013-09-24T11:07:25.577 に答える