android-电话拨号器&点击事件四种写法
Android-电话拨号器
首先,拿到项目需求的时候要分析界面布局
Ui 界面布局如下:
android-cellphone.png
画图画的别嫌弃 - -。
布局文件使用相对布局 较简单
<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/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" > <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="31dp" android:onClick="adiButtonClicked" android:text="拨打电话" /> <!-- 实际项目中不建议这样写。 [I18N] Hardcoded string "拨打电话", should use @string resource 应该保存到vlues 下 因为国际化 --> </RelativeLayout>
接下来 activity 中获取 editext 和 button 视图
Button 设置点击事件点击事件中获取editext 的电话号码,使用intent 启动拨号程序
// 拨打电话 流程 private void cellphone() { String phonenumber = editText.getText().toString().trim(); if (!TextUtils.isEmpty(phonenumber)) { // 意图信息传递 Intent intent = new Intent(); // 打电话 intent.setAction(intent.ACTION_CALL); // 统一资源标识符(Uniform Resource Identifier) intent.setData(Uri.parse("tel:" + phonenumber)); startActivity(intent); } else { Toast.makeText(MainActivity.this, "请输入正确电话号码", Toast.LENGTH_SHORT) .show(); } }
最后别忘了清单文件 AndroidManifest.xml 需要赋予权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
接下来是 项目的详细代码,代码中有四种点击事件的详解
package com.liwei.cellphone; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; 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 EditText editText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 加载布局文件 setContentView(R.layout.activity_main); // 获取button 按钮 button = (Button) findViewById(R.id.button1); // 获取editext 文本 editText = (EditText) findViewById(R.id.editText1); // 设置 button onclick事件 button.setOnClickListener(this); /** * 1.创建一个内部类 定义点击事件 * * button.setOnClickListener(new Mylistener()); * * 2.采用匿名内部类创建点击事件 * * button.setOnClickListener(new OnClickListener() { * * @Override public void onClick(View v) { cellphone(); } }); * * 3. activity 实现点击事件的接口 一般项目中使用 * * 4.xml文件中直接button 绑定 点击方法 * * */ // 创建一个 点击事件方法 OnClickListener clickListener = new OnClickListener() { @Override public void onClick(View v) { cellphone(); } }; } // 实现 点击事件接口 private class Mylistener implements OnClickListener { @Override public void onClick(View v) { cellphone(); } } // 拨打电话 流程 private void cellphone() { String phonenumber = editText.getText().toString().trim(); if (!TextUtils.isEmpty(phonenumber)) { // 意图信息传递 Intent intent = new Intent(); // 打电话 intent.setAction(intent.ACTION_CALL); // 统一资源标识符(Uniform Resource Identifier) intent.setData(Uri.parse("tel:" + phonenumber)); startActivity(intent); } else { Toast.makeText(MainActivity.this, "请输入正确电话号码", Toast.LENGTH_SHORT) .show(); } } /** * 第三种写法 一般项目中使用的第三种方法 */ @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: cellphone(); break; default: break; } } /** * 第四种方法在布局文件中绑定一个点击方法 */ public void adiButtonClicked(View view) { cellphone(); } }
第一种方法:
.创建一个内部类定义点击事件
第二种方法:
采用匿名内部类创建点击事件
第三种方法:
activity 实现点击事件的接口一般项目中使用
第四种方法:
需要在xml 中绑定
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28