2017-07-03 10 views
0

AlertDialogは3つのボタン(プラス、マイナス、ニュートラル)を持ち、携帯電話(Android 7.0)でテストするとうまく動作しますが、アンドロイド5.0と6.0を使って)テストすると、中立のボタンしか表示されませんでした。ここでAlertDialogのみAndroidのニュートラルボタンを表示<

はコードです:

AlertDialog.Builder isSelfieBuilder = new AlertDialog.Builder(context); 
isSelfieBuilder.setTitle("Choose picture orientation."); 

// Set up the buttons 
isSelfieBuilder.setPositiveButton("Selfie", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     //Do something 
    } 
}); 
isSelfieBuilder.setNeutralButton("Landscape", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     //Do something 
    } 
}); 
isSelfieBuilder.setNegativeButton("Portrait", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     //Do something 
    } 
}); 
final AlertDialog picTypeDialog = isSelfieBuilder.create(); 
picTypeDialog.show(); 

final Button positiveButton = picTypeDialog.getButton(AlertDialog.BUTTON_POSITIVE); 
LinearLayout.LayoutParams positiveButtonLL = (LinearLayout.LayoutParams) positiveButton.getLayoutParams(); 
positiveButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT; 
positiveButton.setLayoutParams(positiveButtonLL); 

final Button neutralButton = picTypeDialog.getButton(AlertDialog.BUTTON_NEUTRAL); 
LinearLayout.LayoutParams neutralButtonLL = (LinearLayout.LayoutParams) neutralButton.getLayoutParams(); 
neutralButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT; 
neutralButton.setLayoutParams(neutralButtonLL); 

final Button negativeButton = picTypeDialog.getButton(AlertDialog.BUTTON_NEGATIVE); 
LinearLayout.LayoutParams negativeButtonLL = (LinearLayout.LayoutParams) negativeButton.getLayoutParams(); 
negativeButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT; 
negativeButton.setLayoutParams(negativeButtonLL); 

誰もが私はそこにニュートラルボタンを取得する理由を任意のアイデアを持っていますか?私はアライメント部分(.show()の後のすべて)を取り除こうとしましたが、私は同じ結果を得ました。私はAPI 21(5.0)でエミュレータをテストしていますが、同じ問題が発生します。

+0

アンドロイド版で何かする必要があることを確認しますか?たぶんスクリーンのサイズがそれを引き起こしている.... – Opiatefuchs

答えて

1
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setTitle("Choose picture orientation.") 
       .setPositiveButton("Selfie", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         //doSomething 
        } 
       }) 
       .setNeutralButton("Landscape", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         //doSomething 
        } 
       }) 
       .setNegativeButton("Portrait", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         //doSomething 
        } 
       }); 
     AlertDialog dialog = builder.create(); 
     dialog.show(); 
0

私は、これは完全に無効にすることである「固定」だから方法:

AlertDialog picTypeDialog = isSelfieBuilder.create(); 
picTypeDialog.show(); 

そして

isSelfieBuilder.show(); 

と、単にそれを置き換えることも間隔かかわらず、今、すべてのデバイス上で正常に動作しますボタンの間に完全ではないと私はAlertDialogせずにボタンのレイアウトを編集することはできません。

関連する問題