android基础回顾(四)----button的点击事件
2016-03-16 17:33
531 查看
前三种方法用到的xml为:
1、匿名内部类
2、自定义事件监听类
自定义一个内部类,实现View.OnClickListener接口,实现其onClick方法,分别给按钮实例设置该监听类的实例。
3、Activity实现View.OnClickListener接口(个人认为,其实这种方法和2从本质上是一样的):
4、将监听设置在xml中:
xml为:
<Button android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="点击事件1"/> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="点击事件1" />
1、匿名内部类
package com.example.dhasa.myfirstapplication; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button btn1,btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"匿名内部类点击事件",Toast.LENGTH_LONG).show(); } }); btn2.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"匿名内部类点击事件",Toast.LENGTH_LONG).show(); } }); } }匿名内部类的方法很好理解,创建button对象,根据id获取button实例,分别 对button实例进行事件监听,绑定事件。按钮比较少的时候匿名内部类写起来还是很简单的。但是按钮比较多的时候每个都需要去分别设置。
2、自定义事件监听类
package com.example.dhasa.myfirstapplication; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button btn1,btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn1.setOnClickListener(new MyListener()); btn2.setOnClickListener(new MyListener()); } class MyListener implements OnClickListener { @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn1: Toast.makeText(getApplicationContext(),"自定义事件监听类1",Toast.LENGTH_LONG).show(); break; case R.id.btn2: Toast.makeText(getApplicationContext(),"自定义事件监听类2",Toast.LENGTH_LONG).show(); break; default: break; } } } }
自定义一个内部类,实现View.OnClickListener接口,实现其onClick方法,分别给按钮实例设置该监听类的实例。
3、Activity实现View.OnClickListener接口(个人认为,其实这种方法和2从本质上是一样的):
package com.example.dhasa.myfirstapplication; import android.app.Activity; import android.os.Bundle; 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 btn1,btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn1.setOnClickListener(this); btn2.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn1: Toast.makeText(getApplicationContext(), "activity实现View.OnclickListener1", Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(getApplicationContext(), "activity实现View.OnclickListener2", Toast.LENGTH_SHORT).show(); break; default: break; } } }由此activity类实现View.OnClickListener接口,该类又实现了接口中的onClick方法,给按钮实例设置监听,传入的为当前activity对象(该activity对象为实现接口的监听类嘛不就是)
4、将监听设置在xml中:
xml为:
<Button android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onclick" android:text="点击事件1"/> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onclick" android:text="点击事件2" />activity代码:
package com.example.dhasa.myfirstapplication; import android.app.Activity; import android.os.Bundle; 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 onclick(View v){ switch (v.getId()){ case R.id.btn1: Toast.makeText(getApplicationContext(), "配置文件中click事件1", Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(getApplicationContext(), "配置文件中click事件2", Toast.LENGTH_SHORT).show(); break; default: break; } } }不用实现接口,不需要定义和实现button。
相关文章推荐
- android studio打包aar心得
- android源码应用中导入第三方jar包
- Android中Parcelable接口用法
- Android开发笔记
- Android开发之利用谷歌API定位
- android studio 快捷键大全
- [Java学习] Admob原生Android SDK集成Phonegap/Cordova无需插件
- Android--问题处理
- android 5.1 非STR待机流程
- Android 6.0权限问题
- android防止按钮连续点击开启多次界面
- Android实现屏幕旋转方法总结
- 自定义Android Studio工程模板
- Android消息推送2----Mina框架的使用
- Android Activity启动绘制流程
- java用post上传数据,便获取返回值,android.os.NetworkOnMainThreadException
- Android中下载的图片不能显示,开机后才能显示(大全)
- Ubuntu10.04下Android开发环境搭建
- Android Activity的生命周期简单总结
- Android开发之执行定时任务AlarmManager,Timer,Thread