Android 匿名侦听器类中的Butterknife绑定
我想在单击FloatingAction按钮时显示一个自定义对话框。由于它是一个自定义对话框,因此需要一个布局文件dialog_layout.xml在本例中,布局文件包含几个组件,我希望butterknife在显示对话框之前绑定这些组件并在onClick侦听器中对其进行解释Android 匿名侦听器类中的Butterknife绑定,android,butterknife,Android,Butterknife,我想在单击FloatingAction按钮时显示一个自定义对话框。由于它是一个自定义对话框,因此需要一个布局文件dialog_layout.xml在本例中,布局文件包含几个组件,我希望butterknife在显示对话框之前绑定这些组件并在onClick侦听器中对其进行解释 floatingActionButton.setOnClickListener(new View.OnClickListener() { @BindView(R.id.lblTextView) TextVie
floatingActionButton.setOnClickListener(new View.OnClickListener()
{
@BindView(R.id.lblTextView)
TextView lblTextView;
@Override
public void onClick(View v)
{
View view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_layout, null);
ButterKnife.bind(getActivity(), view);
//I need to do something with lblTextView here but it returns NullPointerException
//create dialog
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view)
//...
builder.create().show();
}
}
我也尝试过:
巴特内夫,这是我的看法
ButterKnife.bindview,视图
巴特内夫·宾德维尤酒店
我错过了什么吗?我做错了吗?上面的片段在片段中。如下图所示,我已经验证了自己。解决你的问题 步骤1:创建一个内部类
public class DialogView {
@BindView(R.id.lblTextView)
TextView lblTextView;
public DialogView(View view) {
ButterKnife.bind(this, view);
//do whatever want with lblTextView
//create dialog
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.create().show();
}
}
第二步:修改你的按钮,点击Listener调用,如下所示
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_layout, null);
new DialogView(view);
}
}
检查下面的文档@Newbie是否已回答,请查看该文档。查看更新的答案,问题立即得到解决。我已经验证了自己。仍然返回更新的答案,现在问题得到解决。我已经证实了我自己。