android学习之4种点击事件的响应方式
2023-09-11 14:20:12 时间
如题,下面就一一列出对点击事件响应的4种方式:
第一种:内部类的形式:
package com.example.dail; import android.net.Uri; import android.os.Bundle; import android.renderscript.Int2; import android.text.TextUtils; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private Button bt_dail = null; private EditText et_number = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_dail = (Button) findViewById(R.id.bt_dail); et_number = (EditText) findViewById(R.id.et_number); bt_dail.setOnClickListener(new MyListener()); } private void callPhone() { String number = et_number.getText().toString(); if(TextUtils.isEmpty(number)) { Toast.makeText(MainActivity.this, "号码不能为空", 1).show(); } Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent); } private class MyListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub callPhone(); } } }
创建一个内部类MyListener实现OnClickListener接口。
第二种:匿名内部类:
package com.example.dail; import android.net.Uri; import android.os.Bundle; import android.renderscript.Int2; import android.text.TextUtils; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private Button bt_dail = null; private EditText et_number = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_dail = (Button) findViewById(R.id.bt_dail); et_number = (EditText) findViewById(R.id.et_number); bt_dail.setOnClickListener(new OnClickListener(){ public void onClick(View v){ callPhone(); } }); } private void callPhone() { String number = et_number.getText().toString(); if(TextUtils.isEmpty(number)) { Toast.makeText(MainActivity.this, "号码不能为空", 1).show(); } Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent); } }
第三种:在xml布局文件中,定义onclick的方式
<Button android:onClick="btOnClick" android:id="@+id/bt_dail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/et_number" android:text="@string/dail"/>"
然后再主类里面实现btOnClick方法,
private void btOnClick() { callPhone(); } private void callPhone() { String number = et_number.getText().toString(); if(TextUtils.isEmpty(number)) { Toast.makeText(MainActivity.this, "号码不能为空", 1).show(); } Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent); }
第四种:让主类实现OnClickListener接口,然后再主类实现未实现的方法
package com.example.dail; import android.net.Uri; import android.os.Bundle; import android.renderscript.Int2; import android.text.TextUtils; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private Button bt_dail = null; private EditText et_number = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_dail = (Button) findViewById(R.id.bt_dail); et_number = (EditText) findViewById(R.id.et_number); bt_dail.setOnClickListener(this); } private void callPhone() { String number = et_number.getText().toString(); if(TextUtils.isEmpty(number)) { Toast.makeText(MainActivity.this, "号码不能为空", 1).show(); } Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent); } @Override public void onClick(View v) { callPhone(); } }
如上所述,4种点击事件的响应方式就是如此。
相关文章
- [Android Security] APK自我保护 - DEX/APK校验
- [Android] 查看Android中的AlarmManager事件
- [Android Pro] android 4.4 Android原生权限管理:AppOps
- Android问题-“signaturs do not match the previously installed version”
- 【黑马Android】(01)android简介/工程目录结构/拨号器/四种点击事件/后台偷偷发短信
- SFS&Android——SFS客户端全部事件详细
- Android Button的四种点击事件
- 开源项目Universal Image Loader for Android
- Android API之android.widget.Filterable
- Android开发艺术探索——新的征程,程序人生路漫漫!
- Android--Handler的使用方法:在子线程中更新界面
- Android Studio / IDEA 中.android 文件夹移动出默认位置
- Android AccessibilityService 事件分发原理
- Android【报错】Failed to resolve: com.android.support:appcompat-v7:28.0.0-alpha【报错】
- Android源码中com.android.support依赖迁移到AndroidX库
- Android 录屏功能的实现
- Android android studio 项目放在源码中编译
- 【Android Gradle 插件】自定义 Gradle 插件模块 ① ( 在 Module 模块中自定义 Gradle 插件 | 创建自定义插件类型模块 | 手动导入相关依赖 )
- 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
- Android apk程序调用其它的APK程序
- Android中Preference的使用以及监听事件分析
- Android Activity Fragment 生命周期
- Android复习笔记--架构与版本
- Android经常使用工具类DateUtils(二)
- Android 消息机制
- Android相关属性的介绍:android:exported = true
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- 【Android-实战】1、Room 使用 Flow 和 collect() 监听数据库的变化、动态更新页面
- Android Studio 4.2.2 Kotlin的import kotlinx.android.synthetic.main.(layout的xml名).view.*
- Android 如何查看apk签名信息的MD5(SHA1和SHA256也可以)