关闭DialogFragment onClick

Goo*_*ead 9 android dialog android-fragments

我试图制作一个可以在点击时被解雇的DialogFragment,经过一些搜索我决定采用这种实现方式:

public class ErrorDialogFragment extends RoboDialogFragment {

private static final String MESSAGE_ARG = "message";
private TextView text;

public ErrorDialogFragment newInstance (String message){
    ErrorDialogFragment f = new ErrorDialogFragment();

        Bundle args = new Bundle();
        args.putString(MESSAGE_ARG, message);
        f.setArguments(args);

        return f;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
    View v = inflater.inflate(R.layout.error_dialog_fragment, container, false);
    v.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ErrorDialogFragment.this.dismiss();
        }
    });

    text = (TextView) v.findViewById(R.id.error_dialog_text_textView);
    text.setText(getArguments().getString(MESSAGE_ARG));
    return v;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(DialogFragment.STYLE_NO_TITLE, 0);
}
Run Code Online (Sandbox Code Playgroud)

警报对话框可以包含自定义消息,并在点按时将被关闭.

你认为这是一个更好的方法吗?

谢谢.

Roo*_*kie 14

你可以使用dialog.setCanceledOnTouchOutside(true); 如果您在对话框外触摸,它将关闭对话框.要么

试试这个教程http://iserveandroid.blogspot.com/2010/11/how-to-dismiss-custom-dialog-based-on.html.希望能帮助到你..!!