步步为营学习android,步步惊喜之android基础篇-按钮学习

Android基础篇-Button学习(三种绑定监听器方式)

   

   不好意思,直到现在才更新我的博客!学习android系统不得不从最基础的UI组件学习,其中首推的就是Button。Button是一个常用的系统的组件。一般通过与监听器搭配使用,从而触发Button事件。关于监听器,作为开始没有任何java以及编程基础的我,不知道其中的监听器原理,开始只知道照抄代码,但是不知所云。其实监听器的原理就是JAVAGUI中的事件模型。大家可以看马士兵的java视频教程,讲的很好,很详细:              

http://v.youku.com/v_show/id_XNDU1NDQ0MjA=.html?f=2420787

作为零基础的开发者来说,看看javaGUI开发是对android开发来说是很重要的,可以说是一种必要。

       我个人理解就是这样,监听器就像一个火警警报器,当警报器响起来的时候,说明着火勒,我们需要灭火。点击Button的时候表示着火勒,监听器反应表示警报器响了,监听器的动作表示灭火的动作。下面讲述Button使用过程。

1. 新建一个 android工程,命名Android_Button

2. 先在布局文件添加三个按

 <?xml version="1.0"encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

 

    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/hello"/>

    <Button

        android:id="@+id/btn1"

        android:layout_width="fill_parent" 

        android:layout_height="wrap_content"

        android:text="Button1"

        />

    <Button

        android:id="@+id/btn2"

        android:layout_width="fill_parent" 

        android:layout_height="wrap_content"

        android:text="Button2"

        />

     <Button

        android:id="@+id/btn3"

        android:layout_width="fill_parent" 

        android:layout_height="wrap_content"

        android:text="Button3"

        />

</LinearLayout>

在这里需要解释一下button中的元素 :

  android:id="@+id/btn1"表示ID属性,定义格式为android:id="@+id/name(name自己可以取,是唯一的)。为每个组件添加好新声明的ID之后,在源代码中通过R资源就可以引用到。

 android:layout_width="fill_parent"表示button的宽度,fill_parent表示它的宽占了整个屏幕。

 android:layout_height="wrap_content"表示button的高度,wrap_content表示高度与button中字体高度一致。在其他组件里这些元素意思也是这样比如TextView中。

在这里需要解释一下button中的元素 :

3 .java 文件:

在Android_ButtonActivity文件中绑定Button

a: 声明Button对象

private Buttonbtn1,btn2,btn3;在这里我们声明三个Button,在这里需要引用Button包,直接ctrl+shift+o(快捷键)引用包。

b:通过findViewByIdint id)方法引用在布局文件中定义的组件并对其实例化。

     btn1 = (Button) findViewById(R.id.btn1);

        btn2 = (Button)findViewById(R.id.btn2);

        btn3 = (Button)findViewById(R.id.btn3);

c:使用听器:

    想知道按钮是否被用户点击,就需要一个点击监听器来对其进行监听,然后通过监听器来获取点击事件,就可以判定关注的按钮是否被用户所点击。

下面重点说明一下使用监听器的三中方式。原理都是一样实现接口onClickListener重写点击监听器的抽象函数onClick。一般情况下有三种代码风格。

第一种:使用内部类实击监听器听:

  关于这种方式,对于java基础不好的最好要看看我刚才推荐的视频java GUI(马士兵)里面有这个介绍。

btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

text1.setText("you have clicked Button1");

}

});

       btn2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

text1.setText("you have clicked Button2");

}

});

       btn3.setOnClickListener(new OnClickListener(

        ) {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

text1.setText("you have clicked Button3");

}

});

第二种方式重写抽象函数。

  对需要的按钮进行按钮绑定监听器操作,一般有按钮被点击,就会自动响应onClick函数,并将点击的Button(Button也是一个view)传入;最后就可以在onClick函数中书写点击点击就会触发的事件(因为定义了多个按钮,所以在onClick函数中对系统传人的view进行按钮匹配的判断,让不同的按钮做不同的处理事件)。代码如下:

与前面不同的是:class要变成这样的形式就是实现接口(红色的部分以及重写onClick方法):

public class Android_ButtonActivity extends Activity implements OnClickListener

      btn1.setOnClickListener(this);

        btn2.setOnClickListener(this);

        btn3.setOnClickListener(this);

  

@Override

public void onClick(View v){

// TODO Auto-generated method stub

switch(v.getId()) {

case R.id.btn1:

text1.setText("you haveclicked Button1");

break;

case R.id.btn2:

text1.setText("you haveclicked Button2");

    break;

case R.id.btn3:

text1.setText("you haveclicked Button3");

break;

}

};

}

 

第三种:定义类。先声明:

OnClickListener

ButtonListener1=null,ButtonListener2=null,ButtonListener3=null;

 

然后建立三个Button监听器

ButtonListener1 = new OnClickListener() {

 

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

text1.setText("you have clicked Button1");

}

           

        };

        ButtonListener2 = newOnClickListener() {

 

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

text1.setText("you have clicked Button2");

}

           

        };

        ButtonListener3 = newOnClickListener() {

 

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

text1.setText("you have clicked Button3");

}

           

        };

最后是绑定

       btn1.setOnClickListener(ButtonListener1);

       btn1.setOnClickListener(ButtonListener2);

       btn1.setOnClickListener(ButtonListener3)

  第三种方法我觉得不是很好,不推荐给大家,写出来,主要是为了哪些基础不好的人能理解,知道有这种方式,我开始就有点不知所云。三种方法都在源代码里面有,只要把注释(/* */)去掉就可以使用三种方法。

     到次关于Button的相关介绍已经结束。可能对于高手来说很简单,我主要目的是以零基础的对象为目的,还希望高手多指教,欢迎大家提意见,也请大家多多原谅其中的错误与瑕疵。根据大家的意见,我会完善我的文章。关于次程序所有的源代码可以从下面的链接种下载!

http://download.csdn.net/detail/tianke0711/4596903




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值