自学Android系列 笔记1 Button 点击事件
2015-09-01 22:45
429 查看
Button基本使用方法
首先,添加Button控件到XML布局文件中。也可通过程序添加。
在布局文件中设置按钮的一些属性,如位置,宽高,按钮上的字,颜色等。
比较重要的是要给按钮一个id号,这是按钮唯一的名字。
这样在程序中可以通过如下形式获得按钮:
button=(Button)findViewById(R.id.buttonId);
第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法。
另一种方法是典型的事件监听机制的应用形式,下面详细说明这两种方法。
android:onClick="yourMethodName"
然后在该布局文件对应的Acitivity中实现该方法:
/**Calledwhentheusertouchesthebutton*/
publicvoidyourMethodName(Viewview)
{
//Dosomethinginresponsetobuttonclick
}
需要注意的是这个方法必须符合三个条件:
1.public
2.返回void
3.只有一个参数View,这个View就是被点击的这个控件。
将这个内部类的对象传入按钮的setOnClickListener方法中,即完成监听器对象和按钮的绑定(在事件源Button上注册了事件监听器),这时候只要按钮被点击,那么监听器对象的onClick方法就会被调用。
当然这里也不一定要自己写一个内部类出来,比如这个例子:
实现窗口的跳转:假设用第一种方法
1.布局好两个窗口
2.在第一个窗口的java代码中,加入在第二个窗口的button的声明的yourMethodName方法,方法中定义意图intent,然后启动,具体代码如下:
publicvoidyourMethodName(Viewv){
Intentintent=
newIntent(MainActivity.this,Three.class);
startActivity(intent);
}
注意:Three为你要跳转的下一个窗口的代码类
所以,在第二个窗口的代码的onCreat方法中,要编写如下代码:setContentView(R.layout.three);
即,设置当前视图为three.xml
点击事件的三种方式:
1.如果是单个按钮,建议使用匿名内部类的方法
button.setOnClickListener(newView.OnClickListener(){
//@Override
//publicvoidonClick(Viewv){
////
TODOAuto-generatedmethodstub
//Toast.makeText(MainActivity.this,"clickbutton1",1).show();
//}
//});
2.如果是多个按钮,可以使用,实现OnClickListener接口的方法,
publicclassMainActivity
extendsActivity
implementsOnClickListener{
privateButton
button1;
privateButton
button2;
privateButton
button3;
@Override
protectedvoid
onCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)
this.findViewById(R.id.button1);
button2=(Button)
this.findViewById(R.id.button2);
button3=(Button)
this.findViewById(R.id.button3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
@Override
publicvoid
onClick(Viewv){
//
TODOAuto-generatedmethodstub
switch(v.getId()){
caseR.id.button1:
Toast.makeText(MainActivity.this,
"button1",1).show();
break;
caseR.id.button2:
Toast.makeText(MainActivity.this,
"button2",1).show();
break;
caseR.id.button3:
Toast.makeText(MainActivity.this,
"button3",1).show();
break;
}
}
3.xml定义的方式
首先,添加Button控件到XML布局文件中。也可通过程序添加。
在布局文件中设置按钮的一些属性,如位置,宽高,按钮上的字,颜色等。
比较重要的是要给按钮一个id号,这是按钮唯一的名字。
这样在程序中可以通过如下形式获得按钮:
button=(Button)findViewById(R.id.buttonId);
处理按钮点击
按钮点击有两种处理方法。第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法。
另一种方法是典型的事件监听机制的应用形式,下面详细说明这两种方法。
1.通过onClick属性设置处理方法
在XML布局文件中设置Button的属性:android:onClick="yourMethodName"
然后在该布局文件对应的Acitivity中实现该方法:
/**Calledwhentheusertouchesthebutton*/
publicvoidyourMethodName(Viewview)
{
//Dosomethinginresponsetobuttonclick
}
需要注意的是这个方法必须符合三个条件:
1.public
2.返回void
3.只有一个参数View,这个View就是被点击的这个控件。
2.使用setOnClickListener添加监听器对象
可以写一个内部类,实现OnClickListener接口,在这个类中实现onClick方法,方法里面写在按钮点击时想做的具体工作。将这个内部类的对象传入按钮的setOnClickListener方法中,即完成监听器对象和按钮的绑定(在事件源Button上注册了事件监听器),这时候只要按钮被点击,那么监听器对象的onClick方法就会被调用。
当然这里也不一定要自己写一个内部类出来,比如这个例子:
Buttonbutton=(Button)findViewById(R.id.button_send);
button.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewv)
{
//Dosomethinginresponsetobuttonclick
}
});
实现窗口的跳转:假设用第一种方法
1.布局好两个窗口
2.在第一个窗口的java代码中,加入在第二个窗口的button的声明的yourMethodName方法,方法中定义意图intent,然后启动,具体代码如下:
publicvoidyourMethodName(Viewv){
Intentintent=
newIntent(MainActivity.this,Three.class);
startActivity(intent);
}
注意:Three为你要跳转的下一个窗口的代码类
所以,在第二个窗口的代码的onCreat方法中,要编写如下代码:setContentView(R.layout.three);
即,设置当前视图为three.xml
点击事件的三种方式:
1.如果是单个按钮,建议使用匿名内部类的方法
button.setOnClickListener(newView.OnClickListener(){
//@Override
//publicvoidonClick(Viewv){
////
TODOAuto-generatedmethodstub
//Toast.makeText(MainActivity.this,"clickbutton1",1).show();
//}
//});
2.如果是多个按钮,可以使用,实现OnClickListener接口的方法,
publicclassMainActivity
extendsActivity
implementsOnClickListener{
privateButton
button1;
privateButton
button2;
privateButton
button3;
@Override
protectedvoid
onCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)
this.findViewById(R.id.button1);
button2=(Button)
this.findViewById(R.id.button2);
button3=(Button)
this.findViewById(R.id.button3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
@Override
publicvoid
onClick(Viewv){
//
TODOAuto-generatedmethodstub
switch(v.getId()){
caseR.id.button1:
Toast.makeText(MainActivity.this,
"button1",1).show();
break;
caseR.id.button2:
Toast.makeText(MainActivity.this,
"button2",1).show();
break;
caseR.id.button3:
Toast.makeText(MainActivity.this,
"button3",1).show();
break;
}
}
3.xml定义的方式
相关文章推荐
- 自学Android系列 笔记1 生命周期介绍
- 自学Android系列 笔记1 单位介绍
- 自学Android系列 笔记1 目录结构说明 2
- 自学Android系列 笔记1 目录结构说明
- Android Studio——HelloWorld
- 四种方案解决ScrollView嵌套ListView问题
- Android-TextView
- Android 自定义上面圆角下面直角的ImageView
- android目录结构
- 一、tiny4412开发板Android环境搭建之编译安卓源码
- Android键盘弹起情景应用
- Android Looper和Handler
- Android问题集(四)——EditText输入完毕后,击屏幕其它区域,隐藏/关闭输入法
- android性能优化
- Android fragment详解
- Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程
- Android Framework 记录之一
- Android Studio 在线下载sdk问题
- Androidannotations框架快速搭建
- 【转】Android开发相关的Blog推荐