Android View添加 Listener 实例代码

2016-02-19 09:42 3 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐Android View添加 Listener 实例代码,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

代码如下:

findViewById(R.id.myButton).setOnClickListener(new View.OnClickListener() {   
    public void onClick(View v) {   
        // Do stuff   
    }   
});

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)


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

代码如下:

View.OnClickListener handler = View.OnClickListener() {   
    public void onClick(View v) {   
        switch (v.getId()) {   
            case R.id.Button01: // doStuff   
                break;   
            case R.id.Button02: // doStuff   
                break;   
        }   
    }   
}   

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

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

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

代码如下:

xml version="1.0" encoding="utf-8"?  
LinearLayout xmlns: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 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

android:onClick="myClickHandler01"

android:onClick="myClickHandler02"

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

代码如下:

package com.ray.test;   

import android.app.Activity;   
import android.os.Bundle;   
import android.view.View;   

public class TestOnClickListener extends Activity {   

    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   

  
    }   
    public void myClickHandler01(View target){   
        setTitle("myClickHandler01");   
    }   
    public void myClickHandler02(View target){   
        setTitle("myClickHandler02");   
    }   

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

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

android:onClick="myClickHandler"

android:onClick="myClickHandler"

代码如下:

package com.ray.test;   

import android.app.Activity;   
import android.os.Bundle;   
import android.view.View;   

public class TestOnClickListener extends Activity {   

    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
    }   
    public void myClickHandler(View target){   
         switch (target.getId()) {   
         case R.id.Button01:    
             setTitle("myClickHandler01");   
             break;   
         case R.id.Button02:    
             setTitle("myClickHandler02");   
             break;   
         }   
    }   
}

来源:https://www.tulaoshi.com/n/20160219/1591791.html

延伸阅读
在项目开发中,可能系统自带的一些widget不能满足我们的需求,这时就需要自定义View。 通过查看系统中的常用widget如Button,TextView,EditText,他们都继承自View,所以我们在继承自定义View的时候也自然的需要继承View。 1、首先新建一个类LView继承自View 代码如下: public class LView extends View {  private Paint paint; ...
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以...
方法一 1.放在drawable下的selector.xml文件 代码如下: android="http://schemas.android.com/apk/res/Android"    android:drawable="@drawable/temp2" / 2.布局文件main.xml 代码如下: http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout...
一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我们可以手势滑动,也可以点击上面的头标进行切换。与此同方式,白色横条会移动到相应的页卡头标下。这是一个动画效果,白条是缓慢滑动过去的。好了,接下来我们就来实现它。 二、在开始前,我们先要认识一个控件,ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来...
在做android开发时有这样一个需求,我们需要把地图的zoomcontroller放置于地图的右下角。 默认情况下,我们在eclipse中拖动控件到editor中,控件的位置将位于整个屏幕的左上角。可以使用 android:layout_gravity、android:gravity和android:width三个属性值,实现控件的九宫格定位。 Xml代码 代码如下: ZoomControls android...

经验教程

466

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部