画像と OK ボタンを含むはずの比較的単純なものを実装しようとしてDialogFragment
おり、アクティビティからの要求に応じて表示したいと考えています。
そのレイアウトをonCreateView
viaに設定しましinflater.inflate
たが、OK ボタン イベント ハンドラの実装がカスタム DialogFragment クラスにあることを伝える方法がわかりません。アクティビティでそれを見つけようとしているようですが、これは私が望んでいるものではありません。電話をかけるgetDialog().dismiss()
だけでそれを却下できますか?
アクティビティでダイアログを作成する方法は次のとおりです。
ResponseDialog dialog = new ResponseDialog();
dialog.show(getFragmentManager(), "dialog_response_image");
また、カスタム DialogFragment を設定する必要getDialog().setCanceledOnTouchOutside(true);
があると言う人もいますが、これをどこに設定すればよいでしょうか。でonActivityCreated
?
アクティビティに含まれる画像のソースを設定したい場合、アクティビティからそのビューにアクセスするにはどうすればよいですか?
また、何らかの理由で、静的な幅/高さを使用しても、ディスプレイ全体がいっぱいになります。これを修正する方法を知っている人はいますか?-レイアウトXMLのLinearLayout
代わりに切り替えることでRelativeLayout
、これを修正できました...DialogFragment
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/background_color"
tools:context=".MainActivity"
android:layout_width="200dp"
android:layout_height="400dp"
android:id="@+id/dialogImageReponse" >
<Button
android:id="@+id/dialogButtonOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="@string/ok"
android:onClick="Ok" />
</RelativeLayout>