关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
一.自定义dialog。
二.实现dialog里view的事件监听
1.自定义dialog比较简单。在实例化new的时候,加入样式,布局就行了。或者重写dialog。
2.实现dialog里view的事件监听一,在一个dialog里面会有很多的view,如何监听view的时间呢?第一个方法就是把要添加到dialog的布局先new出,然后在通过dialog.setContentView()..看代码,代码来自于网络
Dialog dialog = new Dialog(AAAAAActivity.this, R.style.dialog); // 设置它的ContentView // 得到myview才可以通过Id找到控件,实现dialog里的按钮的点击事件 View myView = LayoutInflater.from(AAAAAActivity.this).inflate( R.layout.pay_create_dialog, null); dialog.setContentView(myView); dialog_btn = (Button) myView.findViewById(R.id.dialog_btn); /** dialog_btn的点击事件 */ dialog_btn.setOnClickListener(new DialogOnClickListener()); dialog.show();
3.实现dialog里view的事件监听二。重写dialog时加入监听事件。代码来自于网络
package com.demo; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class LeaveMeetingDialog extends Dialog implements OnClickListener{ private Button quitBtn,stopBtn,cancelBtn; private LeaveMeetingDialogListener listener; public interface LeaveMeetingDialogListener{ public void onClick(View view); } public LeaveMeetingDialog(Context context,int theme,LeaveMeetingDialogListener listener) { super(context,theme); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.leave_meeting_dialog); initViews(); } private void initViews(){ quitBtn = (Button)findViewById(R.id.quit_btn); stopBtn = (Button)findViewById(R.id.stop_btn); cancelBtn = (Button)findViewById(R.id.cancel_btn); quitBtn.setOnClickListener(this); stopBtn.setOnClickListener(this); cancelBtn.setOnClickListener(this); } @Override public void onClick(View v) { listener.onClick(v); } } ---调用处: [java] LeaveMeetingDialog dialog = new LeaveMeetingDialog(this,R.style.Theme_CustomDialog, new LeaveMeetingDialogListener() { @Override public void onClick(View view) { switch(view.getId()){ case R.id.quit_btn:break; case R.id.stop_btn:break; case R.id.cancel_btn:break; } } }); dialog.show();
在网上了一些方法,就找到这两种。。如果还有请他方法,请留言,谢谢!!!