如何解决有没有办法与警报对话框中膨胀的自定义布局进行交互?
我有一个代码,可以在警报对话框中扩展自定义布局。 自定义布局由一个 EditText 和一个 Button 组成。通过单击按钮在 Toast 中显示 EditText 字符串的正确方法是什么?
我尝试了以下代码,但似乎不起作用。
sudo systemctl restart mongod
custom_layout.xml 文件
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Fetch",(dialog,which) -> {
}).setNeutralButton("Cancel",which) -> {
});
final AlertDialog dialog = builder.create();
LayoutInflater inflater = getLayoutInflater();
View dialogLayout = inflater.inflate(R.layout.custom_layout,null);
dialog.setView(dialogLayout);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.show();
dialog.setOnShowListener(d -> {
EditText dialogNameEditText = dialog.findViewById(R.id.dialog_name_edittext);
Button dialogPrintButton = dialog.findViewById(R.id.dialog_print_button);
dialogPrintButton.setOnClickListener(v1 -> {
Toast.makeText(
TestActivity.this,dialogNameEditText.getText().toString(),Toast.LENGTH_SHORT
).show();
});
});
解决方法
为toast创建一个单独的函数
public void show_toast(){
Toast.makeText(
TestActivity.this,dialogNameEditText.getText().toString(),Toast.LENGTH_SHORT
).show();
}
并在 onclicklistener 中调用它
dialog.setOnShowListener(d -> {
EditText dialogNameEditText = dialog.findViewById(R.id.dialog_name_edittext);
Button dialogPrintButton = dialog.findViewById(R.id.dialog_print_button);
dialogPrintButton.setOnClickListener(v1 -> {
show_toast();
});
});
,
试试这个简单的代码。它会起作用。
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.custom_layout);
EditText dialogNameEditText = dialog.findViewById(R.id.dialog_name_edittext);
Button dialogPrintButton = dialog.findViewById(R.id.dialog_print_button);
dialogPrintButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,dialogNameEditText.getText(),Toast.LENGTH_SHORT).show();
}
});
dialog.show();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。