步步为营学习android,步步惊喜之android基础篇-按钮学习
2012-09-25 18:24
633 查看
Android基础篇-Button学习(三种绑定监听器方式)
不好意思,直到现在才更新我的博客!学习android系统不得不从最基础的UI组件学习,其中首推的就是Button。Button是一个常用的系统的组件。一般通过与监听器搭配使用,从而触发Button事件。关于监听器,作为开始没有任何java以及编程基础的我,不知道其中的监听器原理,开始只知道照抄代码,但是不知所云。其实监听器的原理就是J***AGUI中的事件模型。大家可以看马士兵的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:通过findViewById(int
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
不好意思,直到现在才更新我的博客!学习android系统不得不从最基础的UI组件学习,其中首推的就是Button。Button是一个常用的系统的组件。一般通过与监听器搭配使用,从而触发Button事件。关于监听器,作为开始没有任何java以及编程基础的我,不知道其中的监听器原理,开始只知道照抄代码,但是不知所云。其实监听器的原理就是J***AGUI中的事件模型。大家可以看马士兵的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:通过findViewById(int
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
相关文章推荐
- 步步为营学习android,步步惊喜之android基础篇-布局学习3之代码布局3
- 步步为营学习android,步步惊喜之android基础篇-布局学习3之代码布局2
- 步步为营学习android,步步惊喜之android基础篇-布局学习2
- 步步为营学习android,步步惊喜之android基础篇-android工程目录文件学习1
- 步步为营学习android,步步惊喜之android基础篇-布局学习3之代码布局1
- 步步为营学习android,步步惊喜之android基础篇-布局学习1
- 步步为营学习android,步步惊喜(菜鸟级别的我跟你一起成长)-序言
- Android高级应用开发(基础篇) - stage5 - 学习笔记
- Android学习路之Button(按钮)与ImageButton(图像按钮)
- Android自定义控件之开关按钮学习笔记分享
- android 学习基础篇---开发环境的搭建 Eclipse SDK jdk ADT
- Android ORM-GreenDao学习之一基础篇
- Android用户界面基础之CheckBox(复选按钮)、RadioButton(单选按钮)学习
- Android学习--Service基础篇
- Android 学习之- 单选按钮、复选框、状态开关、时钟控件
- Android学习【按钮监听】
- Android学习 之 ColorStateList按钮文字变色
- [Android学习]对话框在android6.0以上版本不显示按钮文字
- 步步为营_Android开发课[3]_Activity学习
- 学习Android按钮以及监听事件