zl程序教程

您现在的位置是:首页 >  后端

当前栏目

AndroidView添加Listener实例代码

实例代码 添加 listener
2023-06-13 09:15:00 时间

复制代码代码如下:


findViewById(R.id.myButton).setOnClickListener(newView.OnClickListener(){   
   publicvoidonClick(Viewv){   
       //Dostuff   
   }   
});


 采用上述方法添加Listener有个缺点就是如果控件太多的话,Listener数量也会增多,因此,可以采用如下的小窍门减少Listener的数量:

复制代码代码如下:


View.OnClickListenerhandler=View.OnClickListener(){   
   publicvoidonClick(Viewv){   
       switch(v.getId()){   
           caseR.id.Button01://doStuff   
               break;   
           caseR.id.Button02://doStuff   
               break;   
       }   
   }   
}   

findViewById(R.id.myButton).setOnClickListener(handler);   
findViewById(R.id.myOtherButton).setOnClickListener(handler); 

在Android1.6里面,添加Listener的工作变得相当的简单(感觉更像在做网页编程!),具体步骤如下:

1.首先在layout里面定义Button并指定响应的Listener

复制代码代码如下:
<xmlversion="1.0"encoding="utf-8"?>  
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"  
   android:orientation="vertical"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   >  
<TextView     
   android:layout_width="fill_parent"    
   android:layout_height="wrap_content"    
   android:text="@string/hello"  
   />  
<Button    
   android:text="Button01"    
   android:id="@+id/Button01"    
   android:layout_width="wrap_content"    
   android:layout_height="wrap_content"  
   android:onClick="myClickHandler01"  
   />  
<Button    
   android:text="Button02"    
   android:id="@+id/Button02"    
   android:layout_width="wrap_content"    
   android:layout_height="wrap_content"  
   android:onClick="myClickHandler02"  
   />  
<TextView     
   android:layout_width="fill_parent"    
   android:layout_height="wrap_content"    
   android:text="@string/hello"  
   />  
</LinearLayout> 

其中以下这两行就是新增的特性:

android:onClick="myClickHandler01"

android:onClick="myClickHandler02"

 

2.在活动里面定义public的方法myClickHandler01、和myClickHandler02(注意这两个方法必须有一个View的形参)。

复制代码代码如下:
packagecom.ray.test;   

importandroid.app.Activity;   
importandroid.os.Bundle;   
importandroid.view.View;   

publicclassTestOnClickListenerextendsActivity{   

   @Override  
   publicvoidonCreate(BundlesavedInstanceState){   
       super.onCreate(savedInstanceState);   
       setContentView(R.layout.main);   

  
   }   
   publicvoidmyClickHandler01(Viewtarget){   
       setTitle("myClickHandler01");   
   }   
   publicvoidmyClickHandler02(Viewtarget){   
       setTitle("myClickHandler02");   
   }   

当然,你也可以采用这种写法:

将两个按钮设置到同一个Listener

android:onClick="myClickHandler"

android:onClick="myClickHandler"

复制代码代码如下:
packagecom.ray.test;   

importandroid.app.Activity;   
importandroid.os.Bundle;   
importandroid.view.View;   

publicclassTestOnClickListenerextendsActivity{   

   @Override  
   publicvoidonCreate(BundlesavedInstanceState){   
       super.onCreate(savedInstanceState);   
       setContentView(R.layout.main);   
   }   
   publicvoidmyClickHandler(Viewtarget){   
        switch(target.getId()){   
        caseR.id.Button01:    
            setTitle("myClickHandler01");   
            break;   
        caseR.id.Button02:    
            setTitle("myClickHandler02");   
            break;   
        }   
   }   
}