DialogFragmentで、ダイアログを作る方法は2種類ある。
ひとつは、onCreateViewでダイアログ内部のレイアウトを作りViewを返すというもの。
strings.xmlで、
ActivityのButton1、Fragmentの中のButton1、TextView1。
fragment_custom_dialog.xmlで、
Fragment側にTextViewとButtonを配置。
activity_main.xmlで、
Activity側はButtonだけ。
CustomDialogFragment.javaで、
package com.bgstation0.android.sample.dialogfragment_;
import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class CustomDialogFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
return inflater.inflate(R.layout.fragment_custom_dialog, container);
}
}
onCreateView内で、R.layout.fragment_custom_dialogから、Viewを作成して返す。
(onCreateViewはDialogFragment派生じゃなくて、Fragment派生なのね。)
MainActivity.javaで、
CustomDialogFragmentにしたぐらいで変わってない。
起動時。
Buttonを押すと、
レイアウトに指定したTextView1とButton1が配置されたダイアログが表示される。
Button1は押しても何も起きない。
もうひとつの方法は、onCreateDialogの中で、AlertDialogでもDialogでも生成して、返すというもの。
DialogFragment | Android Developers
onCreateDialogを使う場合、
onCreateViewはコメントアウト。
AlertDialogにして、PositiveButton押されたら"OK"とToast表示。
起動時。
Button押すと、
レイアウト関係なくしっかりとしたAlertDialog。
OK押すと、
ダイアログが閉じられて、"OK"とToast表示。
Sample/android/DialogFragment/onCreateDialog/src/DialogFragment at master · bg1bgst333/Sample · GitHub