控件注册监听器编写响应的三种方式

以注册一个Button的click事件为例

方法①:通过内部类(匿名类)的方法

public class MainActivity extends Activity {
    Button btn_01;  //声明Button
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_01 = (Button) findViewById(R.id.btn_01);   //获取Button
        btn_01.setOnClickListener(new View.OnClickListener() {    //内部类
            @Override
            public void onClick(View v) {
                //响应
                Toast.makeText(MainActivity,"ok",Toast.LENGTH_LONG).show();
            }
        });
    }
}
方法②:通过继承View.OnClickListener,重写onClick(View v)的方法
public class MainActivity extends Activity implements View.OnClickListener {

Button btn_01;  //声明Button
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

btn_01 = (Button) findViewById(R.id.btn_01);   //获取Button
        btn_01.setOnClickListener(this);  //设置OnClick事件

}

  //重写onClick方法
    @Override
    public void onClick(View v) {
                Toast.makeText(this,"ok", Toast.LENGTH_LONG).show();
    }
}

方法③:通过<Button/>的onClick属性,然后编写相应的方法即可

activity_main.xml文件里

<Button
        android:onClick="btnOnClick" //btnOnClick为方法名
        android:id="@+id/btn_01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

在MainActivity.java文件中编写相应的方法

public void btnOnClick(View v){
        Toast.makeText(this,"ok",Toast.LENGTH_LONG).show();
    }

时间: 2024-10-10 08:52:32

控件注册监听器编写响应的三种方式的相关文章

线程间操作无效:从不是创建控件的线程访问它的三种方法

访问 Windows 窗体控件本质上不是线程安全的.如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态.还可能出现其他与线程相关的 bug,包括争用情况和死锁.确保以线程安全方式访问控件非常重要. 解决办法 1.把CheckForIllegalCrossThreadCalls设置为false 在多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,如果需要访问窗口中的控件,可以在窗口构造函数中将CheckForIllegalCrossThreadCalls设置为

线程间操作无效: 从不是创建控件的线程访问它的三种方法

原文:http://www.cnblogs.com/luckboy/archive/2010/12/19/1910785.html 1.把CheckForIllegalCrossThreadCalls设置为false 2.利用委托 delegate void SetTextCallBack(string text); private void SetText(string text) { if (this.txt_a.InvokeRequired) { SetTextCallBack stcb

MFC动态创建控件及添加消息响应

MFC动态创建控件及添加消息响应 分类: 控件技术2013-01-24 14:12 7020人阅读 评论(0) 收藏 举报 转载地址:http://blog.csdn.net/luy3728000/article/details/8193918 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放

安卓常用布局控件、监听器总结

来源于http://blog.csdn.net/u013901909/article/details/50051615 布局管理器 名称 作用 要点 特点 总结 备注 LinearLayout 线性布局 控制组件 横向 或者 纵向 排列 android:layout_gravity 是控制组件本身的对齐方式, android:gravity是控制本容器子组件的对齐方式; 适用性强 傻瓜式的依次顺序布局   RelativeLayout 相对布局 子组件的位置总是相对兄弟组件,父容器来决定的 (1

ActiveX控件注册不起作用的解决办法

公司写了一个ActiveX打印插件.其中一个同事的电脑死活不能用.于是我就上网找办法 这位兄弟写的比较清晰. ActiveX交互时浏览器的设置以及ActiveX控件注册的检测 http://blog.csdn.net/stalwartwill/article/details/15504191 照着他的办法.我ActiveX控件的ProgId写错了.总是返回false. 我还以为没办法了.奇妙的事情来了.控件突然起作用了. 然后又不起作用了.... 经过测试后. 发现必须先运行那个测试文件.Act

第二十一篇:SOUI中的控件注册机制

Win32编程中,用户需要一个新控件时,需要向系统注册一个新的控件类型.注册以后,调用::CreateWindow时才能根据标识控件类型的字符串创建出一个新的控件窗口对象. 为了能够从XML描述的字符串中创建出需要的控件对象,和Win32类似,在SOUI中要创建一个新的控件也同样需要向SOUI系统注册新的控件类. 从demo.cpp的main中我们可以看到类似如下的控件注册控件的代码: //向SApplication系统中注册由外部扩展的控件及SkinObj类 SWkeLoader wkeLoa

控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)

原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样. 现在介绍一种使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: 首先,新建一个工程RegisterFile.  新建文件夹Resource,里面添加需要注册的ocx或dll.这里我添加的是dsoframer

CAD向控件注册一个命令(com接口VB语言)

主要用到函数说明: MxDrawXCustomFunction::Mx_RegistUserCustomCommand 向控件注册一个命令,用户在命令行输入命令名这个字符串,就会触发执行命令事件 命令事件的id就是该注册时的id值,详细说明如下: 参数 说明 CString sCommandName 命令名称 LONG lId 命令id VB代码实现如下: 1 2 3 4 5 6 Set param2 = New MxDrawXLib.MxDrawResbuf param2.AddString

Jdbc注册驱动的三种方式

Jdbc注册驱动的三种方式 分类: [Java 基础] 2012-05-17 07:34 2558人阅读 评论(0) 收藏 举报 jdbc数据库javavectorurljar 关于驱动包 jdbc中注册驱动,首先导入对应的包,例如mysql-connector-java-5.0.8-bin.jar.驱动包是java和具体数据库之间的连接桥梁,由数据库厂商开发.每一种数据库对应一款驱动jar,甚至每一个版本的数据库都有自己对应版本的驱动jar. 关于java.sqlDriverManger类 J