Android 将ButterKnife绑定到对话框失败
我尝试将ButterKnife绑定到使用DialogBuilder方法创建的AleterDialog 并且存在这个方法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.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())…设置视图(视图)
修复了我的问题。谢谢你,巴德。