android中点击事件的4种写法

android 中获取到一些控件(比如说按钮)时,一般会为其添加点击事件, android 中的点击事件一共有 4 中写法。

 

 

假设在布局文件中声明如下

.......
 
<Button
 
android:layout_width="match_parent"
 
android:layout_height="wrap_content"
 
android:id="@+id/bt_1"
 
/>
 
.......

 

 

一、通过匿名内部类

 

 

主要的 java 代码如下,首先获取到该 Button 控件。

private Button bt_1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_1 = (Button) findViewById(R.id.bt_1);
        bt_1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //点击后触发执行的代码
            }

 

 

二、通过内部类

 

 

首先获取到该控件,再创建一个内部类,该内部类实现 OnClickListener 接口。

private Button bt_1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_1=(Button) findViewById(R.id.bt_1);
        bt_1.setOnClickListener(new MyListener());
    }
    class MyListener implements OnClickListener{
        @Override
        public void onClick(View v) {
            // 点击Button后触发执行的代码
        }
       
    }

 

 

三、在布局文件中添加 onClick 属性

 

 

更改布局文件中 Button 的属性

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/bt_1"
    android:onClick="click"
    />

 

 

添加点击事件时,直接声明一个方法,不必获取到控件

//    private Button bt_1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        bt_1 = (Button) findViewById(R.id.bt_1);
    }
    public void click(View view){
        //点击Button后触发执行的代码
       
    }

 

 

四、通过实现接口

 

 

使用此方法时,主方法要实现 OnClickListener 接口,并且覆写接口中定义的 onClick 方法

public class MainActivity extends Activity implements OnClickListener {
   
    private Button bt_1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_1 = (Button) findViewById(R.id.bt_1);
        //此处传入this即可
        bt_1.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        // 点击Button后执行的代码
       
    }
}
全部评论
不错哦~
点赞 回复 分享
发布于 2015-07-13 12:37

相关推荐

哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务