テーマAlertDialog
を使用するときにシステム スタイルのデフォルトを使用しないカスタムを作成しようとしています。Theme.Holo.Light.Dialog
そのテーマを使いたいのですが、ListActivity
同じテーマを使っているのと同じスタイルにしたいです。クラスが異なれば、同じテーマでもスタイルが異なるため、 のサブクラスを作成する必要があるようDialogFragment
です。もう 1 つの制限は、このダイアログを一般的なものにしたいということです。つまり、条件付きでボタン、メッセージ、タイトル、アイコン、アイテムを追加できるようにしたいのです。したがって、xmlファイルからaを膨張させることはできないようDialogFragment
です(または、必要なすべての可能な要素を作成してから、不要な要素を非表示にすることができれば、できるかもしれません。それは可能ですか?DialogFragment
単一のxmlファイルから膨らませずにプログラムでビルドしますか?
編集
これが役立つようです:プログラムでカスタム ダイアログにコントロールを追加する
私はこの答えを使用して何かに取り組んでいます:テーブルにテーブル行を動的に追加し、Android のダイアログ ボックスに表示します
このコードを使用してもボタンが表示されないのはなぜですか?
レイアウトに追加した xml 要素が表示されます。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
return dialog;
}
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View contentView = inflater.inflate(R.layout.post_dialog, container);
RelativeLayout layout = (RelativeLayout) contentView.findViewById(R.id.post_dialog_layout);
Button testButton = new Button(getActivity());
testButton.setText("success");
testButton.setLayoutParams(new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(testButton);
return contentView;
}