您的位置:首页 > 移动开发 > Android开发

Android学习笔记——Button(按钮)响应事件的四种方式

2015-12-03 16:29 357 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ven_tang/article/details/50162699 实现事件监听器有几种形式:
1、内部类形式;
2、匿名内部类形式;
3、Activity实现监听器接口,自身作为事件监听器类;
4、在xml文件中给Button添加onClick属性。
(Android开发中常用匿名内部类作为监听器)

四种方法中,最常用的是第二种和第四种,即匿名内部类的方式和设置onClick属性。

1、内部类形式:

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取按钮
mButton = (Button) this.findViewById(R.id.button);
// 设置监听
mButton.setOnClickListener(new MyListener());
}

/*
* 内部类
* @author
*
*/
class MyListener implements OnClickListener {

@Override
public void onClick(View v) {
// 弹出Toast
Toast.makeText(MainActivity.this, "点我干嘛?", Toast.LENGTH_SHORT).show();
}
}

}


2、匿名内部类形式:

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取按钮
mButton = (Button) this.findViewById(R.id.button);
// 匿名内部类形式设置监听
mButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
<span style="white-space:pre">	</span>// 弹出Toast
<span style="white-space:pre">	</span>Toast.makeText(MainActivity.this, "点我干嘛?", Toast.LENGTH_SHORT).show();
}
<span style="white-space:pre">	</span>});
}
}


3、Activity实现监听器接口,自身作为事件监听器类:

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取按钮
mButton = (Button) this.findViewById(R.id.button);
// 设置监听
mButton.setOnClickListener(this);
}

@Override
public void onClick(View v) {
// 弹出Toast
<span style="white-space:pre">	</span>Toast.makeText(MainActivity.this, "点我干嘛?", Toast.LENGTH_SHORT).show();
}
}


4、在xml文件中给Button添加onClick属性:android:onClick="click",再在MainActivity中写一个click方法:

【注意】:1.MainActivity中的方法名必须和onClick属性中设置的名称一致;

   2.方法为public

   3.方法返回值必须为void;

   4.参数为View;

package com.android.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void click(View view) {
// 弹出Toast
Toast.makeText(MainActivity.this, "点我干嘛?", Toast.LENGTH_SHORT).show();
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: