android按钮点击事件多种方法实现教程
程序员文章站
2023-03-31 12:59:37
上代码:
package com.hsj.example.uicontroldemo01;
import android.os.bundle;
import android.suppor...
上代码:
package com.hsj.example.uicontroldemo01; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.view.view; import android.widget.button; import android.widget.toast; /** * 给按钮设置点击事件的方式: * a:方式一:在布局文件中的按钮控件中添加属性:onclick="函数名",然后在对应的activity中编写如下格式的函数: * public void 函数名(view view){} * * b:方式二:使用匿名内部类的方式 * button.setonclicklistener(new onclicklistener(){ * public void onclick(view view){ * //点击按钮后的处理代码 * } * }); * * c:使用内部类 * button.setonclicklistener(new myonclicklistener()); * * private final class myonclicklistener implements view.onclicklistener{ * public void onclick(view view){ * //点击按钮后的处理代码 * } * } * * d:让当前activity 实现onclicklistener接口 * public class mainactivity extends activity implements view.onclicklistener{ * * protected void oncreate(bundle savedinstancestate) { * super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //注册点击事件 button.setonclicklistener(this); * } * //处理点击事件 * public void onclick(view v){ * * } * } * * * */ public class mainactivity extends appcompatactivity implements view.onclicklistener { private button button_inner_class; private button button_other; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); this.button_inner_class= (button) this.findviewbyid(r.id.button_inner_class); this.button_other= (button) this.findviewbyid(r.id.button_other); //设置按钮的点击事件对应的事件处理对象 this.button_inner_class.setonclicklistener(this); this.button_other.setonclicklistener(this); } /** * * 查看文档的快捷键: ctrl+j * * @param v 事件源(谁被点击后执行的当前函数,谁就是事件源) */ @override public void onclick(view v) { int id=v.getid(); switch (id){ case r.id.button_inner_class: toast.maketext(this,"我是内部类按钮",toast.length_long).show(); break; case r.id.button_other: toast.maketext(this,"我是另一个按钮",toast.length_long).show(); break; } system.out.println("v="+v); } }
下一篇: 哈哈,这形容的太棒了。