Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1182081
  • 博文数量: 233
  • 博客积分: 6270
  • 博客等级: 准将
  • 技术积分: 1798
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 08:32
文章分类

全部博文(233)

文章存档

2011年(31)

2010年(202)

我的朋友

分类:

2010-11-15 18:34:53

下面介绍按钮点击事件的「OnClickListener」实例的实装的方法。
用其他类的形式也可以实现实装,本次演示在自身Class里实现「OnClickListener」实例的实装。
 
 


import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View.OnClickListener;

public class Test extends Activity implements OnClickListener{
    @Override protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

    }
}


实装必须用的「onClick」方法追加

 

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View.OnClickListener;

public class Test extends Activity implements OnClickListener{
    @Override protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

    }

    public void onClick(View v) {
        /* .... */
    }
}

按钮使用「setOnClickListener」方法并且能够取得点击的事件设定,这个时候
「setOnClickListener」的参数是「OnClickListener」实例化的Object,因为是自己的Class所以参数设定为「this」


 

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View.OnClickListener;

public class Test extends Activity implements OnClickListener{
    @Override protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        Button button = new Button(this);
        button.setOnClickListener(this);
    }

    public void onClick(View v) {
        /* .... */
    }
}


使用例子 Test04_01.java

 

package jp.javadrive.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.view.View.OnClickListener;

public class Test04_01 extends Activity implements OnClickListener{
    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;
    private int count1;
    private int count2;
    private Button button1;
    private Button button2;

    @Override protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        count1 = 0;
        count2 = 0;

        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.HORIZONTAL);
        setContentView(linearLayout);

        button1 = new Button(this);
        button1.setText("Count");
        button1.setOnClickListener(this);
        linearLayout.addView(button1,
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        button2 = new Button(this);
        button2.setText("Count");
        button2.setOnClickListener(this);
        linearLayout.addView(button2,
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
    }

    public void onClick(View v) {
        if (v == button1){
            count1++;
            button1.setText("Count:" + count1);
        }else if (v == button2){
            count2++;
            button2.setText("Count:" + count2);
        }
    }
}


阅读(2371) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~