我正在尝试为自定义willShow
上的viewDidLoad
实施onClick
功能,但当我点击Button
。Dialog
时,没有任何结果。{1} }
MainActivity.java:
Button
addDialog.java:
butEditAdd
感谢您的帮助!
答案 0 :(得分:2)
Dialog片段具有单独的生命周期集。如果要创建类adddialog,则扩展对话框片段并在adddialog的oncreate中使用setcontent视图。
如果你想创建简单的对话框,请尝试这行代码。这将解决你的问题。
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Dialog addDialog = new Dialog(this);
addDialog.setContentView(R.layout.dialogedit);
final Button butEditAdd =(Button)addDialog.findViewById(R.id.btn);
//final Button butEditAdd=addDialog.getAdd();
addDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
butEditAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//addDialog.dismiss();
Toast.makeText(getApplicationContext(),"It's working", Toast.LENGTH_SHORT).show();
}
});
addDialog.show();
}
});
答案 1 :(得分:2)
将AddDialog更改为Dialog
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Dialog addDialog = new Dialog(MainActivity.this);
addDialog.setContentView(R.layout.dialogedit);
final Button butEditAdd =(Button)addDialog.findViewById(R.id.buttonAdd);
addDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.setCanceledOnTouchOutside(true);
butEditAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//addDialog.dismiss();
Toast.makeText(getApplicationContext(),"It's working",Toast.LENGTH_SHORT).show();
}
});
addDialog.show();
}
});
答案 2 :(得分:1)
你需要这样吗
final Button butEditAdd =(Button)addDialog.findViewById(R.id.buttonAdd);
答案 3 :(得分:0)
使用this
代替getApplicationContext()
。
答案 4 :(得分:0)
您应首先对布局进行充气,然后按ID查找视图。
LayoutInflater inflater = LayoutInflater.from(this);
View dialogView = inflater.inflate(R.layout.dialogedit, null);
final Button butEditAdd =(Button) dialogView.findViewById(R.id.buttonAdd);
.............
butEditAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//do something
}
});
这应该有用。
答案 5 :(得分:0)
从对话框 onCreate()中删除 setContentView(R.layout.dialogedit)。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
你的其余代码工作正常。