Android 将ButterKnife绑定到对话框失败

Android 将ButterKnife绑定到对话框失败,android,butterknife,Android,Butterknife,我尝试将ButterKnife绑定到使用DialogBuilder方法创建的AleterDialog 并且存在这个方法ButterKnife.bind(对象,对话框)但对我不起作用 import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; public class NewUserDialogFragment extends DialogFragment { @Bind(

我尝试将ButterKnife绑定到使用DialogBuilder方法创建的AleterDialog 并且存在这个方法
ButterKnife.bind(对象,对话框)但对我不起作用

import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
public class NewUserDialogFragment extends DialogFragment {
    @Bind(R.id.textuserAccount)
    EditText textuserAccount;
    @Bind(R.id.textPassword)
    EditText textPassword;
    @Bind(R.id.nauta_domains)
    Spinner nauta_domains;
    @Bind(R.id.manualConfig)
    View manualConfig;
    @Bind(R.id.checkViewPass)
    CheckBox checkViewPass;

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        AlertDialog dialog = new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.new_user_dialog__icon)
                .setTitle(R.string.new_user_dialog_title)
                .setView(R.layout.accountlist_dialog_user_)
                .setPositiveButton(R.string.alert_dialog_create, void_OnClickListener)
                .setNegativeButton(R.string.alert_dialog_cancel, void_OnClickListener)
                .create();
      //Fails!!!!!!!
        ButterKnife.bind(this,dialog);  
    ...
错误:

Caused by: java.lang.IllegalStateException: Required view 'textuserAccount' with ID 2131624044 for field 'textuserAccount' was not found. If this view is optional add '@Nullable' annotation.
                                                                                      at butterknife.ButterKnife$Finder.findRequiredView(ButterKnife.java:140)
textuserAccount=(EditText)((对话框)对话框)工作正常


我可以在这个类中使用butterknife吗?

您需要膨胀对话框布局,并将生成的视图对象传递给butterknife

    view = View.inflate(getContext(), R.layout.accountlist_dialog_user_, null);
    ButterKnife.bind(this, view);

至少,这就是我在对话中使用Butterknife的方式,对我来说效果很好

我能够在
对话框片段
(类似于)的
启动
中绑定视图,同时仍然使用
AlertDialog.Builder#setView(int)
方法:

private Unbinder unbinder;

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    return new AlertDialog.Builder(getActivity())
            .setIcon(R.drawable.new_user_dialog__icon)
            .setTitle(R.string.new_user_dialog_title)
            .setView(R.layout.accountlist_dialog_user)
            .setPositiveButton(R.string.alert_dialog_create, void_OnClickListener)
            .setNegativeButton(R.string.alert_dialog_cancel, void_OnClickListener)
            .create();
}

@Override
public void onStart() {
    super.onStart();
    unbinder = ButterKnife.bind(this, getDialog());
}

@Override
public void onDestroyView() {
    super.onDestroyView();
    unbinder.unbind();
}

一切都很完美

Dialog Dialog=新建对话框(上下文);
setContentView(R.layout.dialog\u结果);

Unbinder Unbinder=ButterKnife.bind(此对话框)

确定最终解决方案是将此膨胀视图传递给对话框:
新建AlertDialog.Builder(getActivity())…设置视图(视图)
修复了我的问题。谢谢你,巴德。