关于实现自定义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();   

 

在网上了一些方法,就找到这两种。。如果还有请他方法,请留言,谢谢!!!

posted @ 2013-11-21 10:48  大暴雨  阅读(3313)  评论(0编辑  收藏  举报