android对话框点击事件,如何为自定义对话框设置按钮单击侦听器?

我已经制作了一个主要的Dialog类,我在其上发送布局ID并显示布局作为Dialog现在当我从调用类发送布局时popup对话框但对话框的内容即按钮无法访问我无法设置点击听取他们的意见。 怎么做?

打电话: –CustomDialog obj=new CustomDialog(MailSenderActivity.this , R.layout.mydialog); obj.show();

主类

import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class CustomDialog extends Dialog implements View.OnClickListener { Dialog dialog; int id; public CustomDialog(MailSenderActivity mailsender, int id) { super(mailsender); this.id = id; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(id); Button signInbutton=(Button)findViewById(R.id.signInButton); Button closebutton=(Button)findViewById(R.id.closeButton); } public void closebutton(View v) { Toast.makeText(getContext(), "You clicked a button!", Toast.LENGTH_LONG).show(); dismiss(); } @Override public void onClick(View v) { // TODO Auto-generated method stub } }

id是: –

你去:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(id); Button signInbutton=(Button)findViewById(R.id.signInButton); signInButton.setOnClickListener(this); Button closebutton=(Button)findViewById(R.id.closeButton); closeButton.setOnClickListener(this); } @Override public void onClick(View v) { if(R.id.closeButton == v.getId()) { closeButton(v); } else { // do the same for signInButton } }

建议你事先学习基础知识。

dialog_bring_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { final Dialog dialog = new Dialog(MyActivity.this); dialog.setContentView(R.layout.MyCustomDialogxmlfile); dialog.show(); /* My Cancel Button , and its listener */ my_cancel_btn=(Button)dialog.findViewById(R.id.datesetbtn); my_cancel_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); } });

我发现代码更清楚地分离我的点击处理程序。 在onCreate方法中添加:

signInbutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do stuff for signInButtonClick } }); // same for other button

dialog = new Dialog(this); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle("Custom Dialog"); Button dialog_btn = (Button) dialog.findViewById(R.id.dialog_button); dialog_btn.setOnClickListener(new View.OnClickListener() { // Perform button logic }

submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CustomDialog dialog1 = new CustomDialog(Classname.this); dialog1.setContentView(R.layout.submitdialog); dialog1.setTitle(" SUBMIT :"); TextView text = (TextView) dialog1.findViewById(R.id.message); text.setText(" Your Answer is correct "); } }

AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.warning); builder.setTitle("Warning"); final LinearLayout backAlarmDialogLayout = (LinearLayout) getLayoutInflater() .inflate(R.layout.custumedialog_layou, null); builder.setView(backAlarmDialogLayout); builder.setCancelable(true); backAlarmDialog = builder.create();

设置这些代码以在onCreate中初始化您的服装对话框,如果您想将监听器添加到按钮,您可以编写另一个方法,如

public void onClickCancel(View view){ backAlarmDialog.dismiss(); }

然后你用

android:onClick="onClickCancel"

在XML.files的按钮中你已经打开了对话框,我尝试了其他方法,但它们根本不起作用,我不知道为什么会这样。也许有人会解决我的问题。 || = =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值