2017-08-08 9 views
1

アンドロイドでAndroidのスタイルを作成しました。&のコードを貼り付けました。しかし、スタイリングはAndroidの6.0.1で動作していないようです。スクリーンショットも同様に。私にこれを手伝ってください。Androidのアラートダイアログは、Samsung 6.0.1で動作していません

コード

<style name="GeneraButton1" parent="android:Widget.Button"> 
    <item name="android:textColor">@color/colorPrimary</item><item name="android:fontFamily">sans-serif</item><item name="android:textSize">@dimen/key_text</item><item name="android:gravity">center</item><item name="android:background">@drawable/general_button1_selector</item> 
</style> 

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <!-- Used for the buttons --><item name="colorAccent">@color/white</item><!-- Used for the title and text --><item name="android:textColorPrimary">@color/colorPrimary</item><!-- Used for the title and text --><item name="android:textColor">@color/colorPrimary</item><!-- Used for the background --><item name="android:background">@color/white</item><item name="android:button">@style/GeneraButton</item><item name="android:actionButtonStyle">@style/GeneraButton</item> 
</style> 

JavaCode

public void showAlertDialog(String title, String message, IAlertDialogueInterface handler, final View view, boolean setPositiveButton, int posBtnString, int negBtnStr) { 
    final IAlertDialogueInterface internalHandler; 
    if (handler == null) { 
     internalHandler = new AlertHandler(); 
    } else { 
     internalHandler = handler; 
    } 
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle); 
    alertDialogBuilder.setTitle(title); 
    alertDialogBuilder.setMessage(message); 
    alertDialogBuilder.setCancelable(false); 
    if (setPositiveButton) { 
     alertDialogBuilder.setPositiveButton(this.getString(posBtnString), 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface arg0, int arg1) { 
        alertDialog.dismiss(); 
        internalHandler.onAlertButtonClick(arg1, view); 
       } 
      }); 
    } 
    alertDialogBuilder.setNegativeButton(this.getString(negBtnStr), new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      alertDialog.dismiss(); 
      internalHandler.onAlertButtonClick(which, view); 
     } 
    }); 

    alertDialog = alertDialogBuilder.create(); 

    if (view != null) { 
     alertDialog.setView(view); 
    } 
    alertDialog.show(); 
} 

MotoG4Plus(アンドロイド7.0のスクリーンショット)enter image description here

サムスン(アンドロイド6.0.1のスクリーンショット)enter image description here

+0

あなたは1つのstyle.xmlファイルしか持っていませんか?あなたはna v23/styles.xmlを持っていないのですか? –

+1

アラートダイアログでそのスタイルを使用するコードを共有してください。このガイドに従ってください:https://stackoverflow.com/questions/2422562/how-to-change-theme-for-alertdialog – David

+0

@Davidコードを編集しました。確認してください。 –

答えて

3

コードから行う必要があります。以下のように:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, R.style.YourAlertDialogStyle); 
    alertDialogBuilder.setTitle("title"); 
    alertDialogBuilder.setMessage("message"); 
    alertDialogBuilder.setCancelable(false); 
    final AlertDialog alertDialog = alertDialogBuilder.create(); 
    //2. now setup to change color of the button 
    alertDialog.setOnShowListener(
      new DialogInterface.OnShowListener() { 
      @Override 
      public void onShow(DialogInterface arg0) { 
       // like this set text color to all your buttons in dialog 
       alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(COLOR_YOU_WANT); 
      } 
    }); 

ハッピーコーディング!

関連する問題