XML レイアウトから拡張されたいくつかのカスタム ダイアログを使用する Android アプリがあります。ダイアログのビューの内容は XML レイアウトから取得されますが、実際のポジティブ ボタンとネガティブ ボタンはビルダーの setPositiveButton メソッドと setNegativeButton メソッドを呼び出すことによって追加されるため、スタイリングを制御できません (または少なくとも制御方法がわかりません)。ボタン自体の。
DialogFragment を拡張する LoginConfirmationDialog.java ファイルから以下の onCreateDialog メソッドを参照してください。基本的には、誰がログインしているかの確認を求める非常に単純なダイアログがポップアップ表示されます (つまり、「Are you Joe Schmoe?」、[はい] と [いいえ] ボタンが表示されます)。
この場合の XML レイアウトには TextView が 1 つしかありません。これを簡単にするために (ユーザーは大きなテキストと大きなボタンを必要とする、こぶ状の汚れた大きな指を持つ建設作業員になるため)、TextView のフォントをかなり大きくしました。ただし、2 つのボタンのテキストのフォントははるかに小さく、レイアウトの一部ではなく、setPositiveButton メソッドと setNegativeButton メソッドで追加されるため、フォント サイズを制御するにはどうすればよいでしょうか?
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = this.getArguments();
String empName = args.getString("empName");
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_login_confirmation, null);
TextView message = (TextView)view.findViewById(R.id.txtLoginConfirmationMessage);
message.setText("Are you " + empName + "?");
builder.setView(view);
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmPositiveClick(LoginConfirmationDialog.this);
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmNegativeClick(LoginConfirmationDialog.this);
}
});
// Create the AlertDialog object and return it
return builder.create();
}