Android一个监听器实现多个监听

时间: 2012-06-01 / 分类: 资料积累 / 浏览次数: 1,961 views / 5个评论 发表评论

在android应用程序中,有时要用到很多的按钮元件,每个按钮都要有一个监听事件。

为了让代码看起来干净简洁,并节省一些内存,我们可以用一个监听器(Listener)来实现多个按钮的onClick监听下面是一个j具体的例子:

package com.android;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class IntentSelectActivity extends Activity implements View.OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /*下面是声明了3个按钮,并为每个按钮设定了一个标志*/
        Button button1 = (Button)findViewById(R.id.btn1);
        Button button2 = (Button)findViewById(R.id.btn2);
        Button button3 = (Button)findViewById(R.id.btn3);
        button1.setOnClickListener(this);
        button1.setTag(1);
        button2.setOnClickListener(this);
        button2.setTag(2);
        button3.setOnClickListener(this);
        button3.setTag(3);

    }
    public void onClick(View v){
    	int tag = (Integer) v.getTag();
    	switch(tag){
    	case 1:
               Intent music = new Intent(Intent.ACTION_GET_CONTENT); music.setType("audio/*"); startActivity(Intent.createChooser(music, "Select music")); break;
    	case 2:
    		Intent dial = new Intent(); dial.setAction("android.intent.action.CALL"); dial.setData(Uri.parse("tel:13428720000")); startActivity(dial);
    		break;
    	case 3:
    		Intent wallpaper = new Intent(Intent.ACTION_SET_WALLPAPER); startActivity(Intent.createChooser(wallpaper, "Select Wallpaper"));
    		break;
    	default :
    		break;
    	}

    }
}

 

这段代码用三个按钮实现了三个Intent意图:

音乐播放、自动拨号、背景选择(也就是代码中描红的部分),你可以根据自己按钮的需要换乘自己的代码。

只用了一个onClick处理,这样代码看起来简洁了很多。

 

PS:这只是一种方法,在一般的Android教程中少见,在这里给大家提供一种新的方式。



.

*******************************************************************

上面是广告! 真的是广告!! 真的真的啊!!!

-----------------------------------------------------Copyright © 2011-2012--浙ICP备12011997---------------------------- ---------------------- ------------------------

无觅相关文章插件,快速提升流量