2017-10-31 6 views
0

私はアンドロイド開発で新しく、これに問題があります(下記スクリーンショット)。アラートダイアログボックスでネガティブボタンとポジティブボタンをカスタマイズする方法は?

enter image description here

はいいいえはいボタンバーの背景色は濃い灰色です。私はアンドロイドの開発について知っていることをすべてやったが、これを行う方法を理解していない。 **どのようにカスタマイズすればいいですかつまり、背景色、水平線など**

ここは自分のコードです。

custom_dialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorAccent" 
     android:textColor="#ffffff" 
     android:textSize="45sp" 
     android:paddingTop="5dp" 
     android:paddingLeft="10dp" 
     android:paddingBottom="5dp" 
     android:paddingRight="10dp" 
     android:gravity="center_horizontal"/> 
    <RelativeLayout 
     android:id="@+id/body" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#ffffff" 
     android:paddingTop="5dp" 
     android:paddingLeft="10dp" 
     android:paddingBottom="5dp" 
     android:paddingRight="10dp" 
     android:layout_below="@+id/title" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"> 

     <TextView 
      android:id="@+id/text1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:text="You are leaving from the app." 
      android:textColor="#000000" 
      android:textSize="25sp" 
      android:gravity="center_horizontal"/> 
     <TextView 
      android:id="@+id/text2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="20dp" 
      android:layout_below="@+id/text1" 
      android:text="Are you sure." 
      android:textColor="#000000" 
      android:textSize="25sp" 
      android:gravity="center_horizontal"/> 

    </RelativeLayout> 

</RelativeLayout> 

homeactivity.java

public void onBackPressed() { 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
       HomeActivity.this); 


     View view = LayoutInflater.from(HomeActivity.this).inflate(R.layout.custom_dialog,null); 
     TextView title = (TextView) view.findViewById(R.id.title); 
     title.setText("Leaving?"); 

     alertDialogBuilder 
       .setCancelable(false) 
       .setPositiveButton("Yes",new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog,int id) { 
         HomeActivity.this.finish(); 
        } 
       }) 
       .setNegativeButton("No",new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog,int id) { 
         dialog.cancel(); 
        } 
       }); 
     AlertDialog alertDialog = alertDialogBuilder.create(); 
     alertDialog.setView(view); 
     alertDialog.show(); 
    } 

誰も私を助けて。前もって感謝します。

+0

https://stackoverflow.com/questions/8861745/is-possible-to-customize-ポジティブ&ネガティブボタン - アラートダイアログ –

答えて

1

I.ダイアログ背景のカスタムdrawable.xmlを宣言します。

<?xml version="1.0" encoding="utf-8"?> 
<!-- From: support/v7/appcompat/res/drawable/abc_dialog_material_background_light.xml --> 
<inset xmlns:android="http://schemas.android.com/apk/res/android" 
    android:insetLeft="16dp" 
    android:insetTop="16dp" 
    android:insetRight="16dp" 
    android:insetBottom="16dp"> 

    <shape android:shape="rectangle"> 
     <corners android:radius="2dp" /> 
     <solid android:color="@color/indigo" /> 
    </shape> 

</inset> 

II。 styles.xmlファイルでカスタムスタイルを宣言します。

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <!--buttons color--> 
    <item name="colorAccent">@color/pink</item> 
    <!--title and message color--> 
    <item name="android:textColorPrimary">@android:color/white</item> 
    <!--dialog background--> 
    <item name="android:windowBackground">@drawable/drawable</item> 
</style> 

III。ダイアログを作成し、AlertDialog.Builderのパラメータとしてスタイルを使用します。

AlertDialog.Builder builder = 
     new AlertDialog.Builder(this, R.style.MyDialogTheme); 
... 
AlertDialog dialog = builder.create(); 
// display dialog 
dialog.show(); 
0

として警告ダイアログを追加するよりも、タイトルやボタンなどの画像で与えられるよう、正確なXMLを作成します。

final Dialog dialog = new Dialog(MainActivity.this); 
      dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialog1.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
      dialog1.setContentView(R.layout.custom_dialog); 
      dialog1.setCancelable(false); 

      dialog1.show(); 
btn_yes = (Button)dialog.findViewById(R.id.btn_yes); 
btn_no = (Button)dialog.findViewById(R.id.btn_no); 
      btn_yes.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        dialog1.dismiss(); 
        finish(); 

       } 
      }); 

btn_no.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        dialog1.dismiss(); 
        finish(); 

       } 
      }); 

      dialog1.setOnKeyListener(new DialogInterface.OnKeyListener() { 
       @Override 
       public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
        // TODO Auto-generated method stub 
        if (keyCode == KeyEvent.KEYCODE_BACK) { 

         finish(); 

        } 

        return true; 
       } 
      }); 

     } 
関連する問題