本例子有三个技术点:
1、动态加载xml文件
2、回调函数的使用
3、activity和fragment的通信
public class ViewDialogFragment extends DialogFragment {
/**
* 定义一个回调接口并拥有接口的引用作为属性,在fragment和activity绑定时
* 传入context赋值给callback(activity需要实现Callback接口)
*/
private Callback callback;
public interface Callback{
void login(String username,String password);
}
/**
* 在activity中调用这个方法即可实现绑定
* @param fragmentManager
*/
public void show(FragmentManager fragmentManager){
show(fragmentManager,"ViewDialogFragment ");
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
LayoutInflater inflater = getActivity().getLayoutInflater();
final View view = inflater.inflate(R.layout.dialog_fragment, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view)
.setPositiveButton("确定",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
if(callback!=null){
EditText username = view.findViewById(R.id.username);
EditText password = view.findViewById(R.id.password);
callback.login(user