Android——按钮的事件监听
关于Button按钮的四种事件监听方法总结
首先我们在activity_main.xml里面先定义一个Button空间
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" > <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" /> </RelativeLayout>
好,现在要我们来看点击事件的四种写法:
1.最常见的一种写法——匿名的内部类做为事件监听器类
package com.basillee.blogdemo; 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 btnButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnButton=(Button)findViewById(R.id.button1);
btnButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, "button clicked", Toast.LENGTH_LONG).show();
}
});
} }
2.内部类做为监听器
package com.basillee.blogdemo; 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 btnButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnButton=(Button)findViewById(R.id.button1);
MyClicked myClicked=new MyClicked();
btnButton.setOnClickListener(myClicked);
}
private class MyClicked implements OnClickListener{ @Override
public void onClick(View arg0) {
Toast.makeText(getApplicationContext(), "Button clicked!", Toast.LENGTH_LONG).show();
} }
}
3.Activity直接实现OnClickListener接口
package com.basillee.blogdemo;
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 btnButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnButton=(Button)findViewById(R.id.button1);
btnButton.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
Toast.makeText(this, "Button clicked!", Toast.LENGTH_LONG).show();
}
}
4.在布局文件中,用android:onClick属性指定对应的方法名实现
activity_main.xml代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" > <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button"
android:onClick="myClick"/> </RelativeLayout>
MainActivity.java代码如下:
package com.basillee.blogdemo; 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 myClick(View v){
Toast.makeText(getApplicationContext(),"Button clicked!", Toast.LENGTH_LONG).show();
}
}
最新文章
- selenium定位元素(本内容从https://my.oschina.net/flashsword/blog/147334处转载)
- Maven中的DependencyManagement和Dependencies
- (企业面试部分)超详细思路讲解SQL语句的查询实现,及数据的创建。
- Android getevent
- Adobe Flash builder 4.6破解教程(以win764bit为例)
- Eclipse 快捷键 转换为Netbeans 快捷键
- IOS开发之—— 上传头像的使用
- 20140912-关于.NET技术体系的思维导图
- [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
- android系统平台显示驱动开发简要:LCD常用接口篇『二』
- 第27条:使用“class-continuation分类”隐藏实现细节
- PYTHON之批量文件指定字符串替换
- ios学习-delegate、传值、跳转页面
- 怎样把HTC G7的内存扩展到2GB
- QT使用WOL实现远程一键开机(局域网)
- docker 网络4种模式
- mysql 性别存储
- HDU 4085 Steiner树模板称号
- Zabbix实战-简易教程(3)--DB安装和表分区
- 清除SqlServer日志