Android中实现事件监听的5种方式

Android中实现事件监听的5种方式

  1. 匿名内部类
 public class FirstActivity extends Activity  {
    
    
 	@Override	 
 	  protected void onCreate(Bundle savedInstanceState)   {
    
          
 	  super.onCreate(savedInstanceState);
 	  setContentView(R.layout.activity_first);
         Button but2 =(Button)findViewById(R.id.button2);	
         		//1.匿名内部类			
         but2.setOnClickListener(new View.OnClickListener() {
    
    	
         	  @Override					  
         	  public void onClick(View v){
    
    		   
         	  // TODO Auto-generated method stub			 
         	    				   }				   
         	   });		  
        }
}
  1. 内部类
  public class FirstActivity extends Activity {
    
     	
  @Override	 	
  protected void onCreate(Bundle savedInstanceState) {
    
     	 
  super.onCreate(savedInstanceState); 
  	setContentView(R.layout.activity_first);
  	 Button but2 = (Button) findViewById(R.id.button2);	
  class MyListener implements OnClickListener{
    
    
  	 	@Override			 	
  	 	public void onClick(View v)   {
    
    		
  	 			 	// TODO Auto-generated method stub				 	     	    }			
  	 			 	 	}		  
  	 	MyListener  mylistener=new MyListener(); 	
  	 	but2.setOnClickListener(mylistener);	 	
  	 	}
  	 	 

3.外部类

   public class FirstActivity extends Activity {
    
    	
       @Override	
          protected void onCreate(Bundle savedInstanceState) {
    
    
                super.onCreate(savedInstanceState);      
                setContentView(R.layout.activity_first);
                   Button but2 = (Button) findViewById(R.id.button2);
                     MyListener  mylistener=new MyListener(); 
                      but2.setOnClickListener(mylistener);		      
                      } 
                       } 

final class MyListener implements OnClickListener{
    
    
     @Override	  
     public void onClick(View v) {
    
    		  
     // TODO Auto-generated method stub		 
           }
             }

4.通过Activity实现

 public class FirstActivity extends Activity implements OnClickListener{
    
    
 	 @Override	 
 	 protected void onCreate(Bundle savedInstanceState) {
    
     		
 	 super.onCreate(savedInstanceState); 
 	 setContentView(R.layout.activity_first); 
 	 Button but2 = (Button) findViewById(R.id.button2);                
 	 but2.setOnClickListener(this); 
 	 	}	 
 	 @Override	
 	  	public void onClick(View v) {
    
    	 
 	  			// TODO Auto-generated method stub			 		
 	  			}
 	  			 } 

5.通过XML布局文件实现

public class FirstActivity extends Activity {
    
    
 	@Override	 
 		protected void onCreate(Bundle savedInstanceState) {
    
    		 	
 		super.onCreate(savedInstanceState);	 	
 		setContentView(R.layout.activity_first);		 	
 		} 
 	 	public void callBack(View view) {
    
    }
 	 	 }

XML布局文件,通过控件属性onClick绑定事件函数,即android:onClick=“callBack”

<Button       
  android:layout_width="match_parent"
android:layout_height="wrap_content"       
android:id="@+id/button2"     
  android:onClick="callBack"  />```

猜你喜欢

转载自blog.csdn.net/FlippedY/article/details/108636966