我已经制作了一个主要的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的按钮中你已经打开了对话框,我尝试了其他方法,但它们根本不起作用,我不知道为什么会这样。也许有人会解决我的问题。 || = =