1、Android开发之四种点击事件
2015-08-13 17:14
411 查看
第一种直接在布局中android;onclick,当用户点击按钮时,直接触发该方法
mainActivity:
xml布局文件:
最后在manifest设置权限
第二种:把xml布局文件的Onclick去掉(以下三种情况都是这样),其他不变,在java中设置点击事件,匿名内部类:
第三种:Activity继承OnClickListener,在Onclick方法中执行:
第四种:内部类的使用:
mainActivity:
package com.zhansy.myonclick; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText editText; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText= (EditText) findViewById(R.id.et_phone); // btn= (Button) findViewById(R.id.btn_call); } public void call(View v){ String number = editText.getText().toString();//获得编辑框的号码 Intent intent = new Intent();//创建意图 intent.setAction(Intent.ACTION_CALL);//指定其动作为拨打号码 intent.setData(Uri.parse("tel:" + number));//指定将要拨打的号码 startActivity(intent);//执行这个动作 } }
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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <EditText android:id="@+id/et_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="手机号" /> <Button android:id="@+id/btn_call" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="call" android:layout_below="@id/et_phone" android:text="拨打" /> </RelativeLayout>
最后在manifest设置权限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zhansy.myonclick" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.CALL_PHONE"/> </manifest>
第二种:把xml布局文件的Onclick去掉(以下三种情况都是这样),其他不变,在java中设置点击事件,匿名内部类:
package com.zhansy.myonclick; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private EditText editText; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText= (EditText) findViewById(R.id.et_phone); btn= (Button) findViewById(R.id.btn_call); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { call(view); } }); } public void call(View v){ String number = editText.getText().toString();//获得编辑框的号码 Intent intent = new Intent();//创建意图 intent.setAction(Intent.ACTION_CALL);//指定其动作为拨打号码 intent.setData(Uri.parse("tel:" + number));//指定将要拨打的号码 startActivity(intent);//执行这个动作 } }
第三种:Activity继承OnClickListener,在Onclick方法中执行:
package com.zhansy.myonclick; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements View.OnClickListener { private EditText editText; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.et_phone); btn = (Button) findViewById(R.id.btn_call); btn.setOnClickListener(this); } public void call(View v) { String number = editText.getText().toString();//获得编辑框的号码 Intent intent = new Intent();//创建意图 intent.setAction(Intent.ACTION_CALL);//指定其动作为拨打号码 intent.setData(Uri.parse("tel:" + number));//指定将要拨打的号码 startActivity(intent);//执行这个动作 } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_call: call(view); break; // case R.id.btn_call: // call(view); // break; default: break; } } }
第四种:内部类的使用:
package com.zhansy.myonclick; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity{ private EditText editText; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.et_phone); btn = (Button) findViewById(R.id.btn_call); btn.setOnClickListener(new call()); } class call implements View.OnClickListener { @Override public void onClick(View view) { String number = editText.getText().toString();//获得编辑框的号码 Intent intent = new Intent();//创建意图 intent.setAction(Intent.ACTION_CALL);//指定其动作为拨打号码 intent.setData(Uri.parse("tel:" + number));//指定将要拨打的号码 startActivity(intent);//执行这个动作 } } }
相关文章推荐
- Android4.4 蓝牙源代码段分析
- 用一个textview显示数字,让数字从一个值渐变到另外一个值
- Android Layout_weight属性完全解析以及使用ListView来实现表格
- android Fragment和Activity
- 将cordova集成到Android studio的最佳方法
- Ubuntu搭建Android交叉编译环境
- Android分享功能的一点总结
- Android笔记:四大组件
- init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件
- android 启动程序的一些标准方法
- Android(java)学习笔记150:为什么局部内部类只能访问外部类中的 final型的常量
- android textview html font标签不好用
- hdoj-5099-Comparison of Android versions
- android获取/更改gps和WIFI状态
- Android:ViewDragHelper学习
- Android中BaseAdapter的理解
- [置顶] android源码编译apk集成第三方so库
- android视图切换库SwitchLayout的使用
- android的recovery模式
- Android应用开发原理之从View源码挖掘View中的事件传递机制