Android入门——电话拨号器和四种点击事件

简介:



相对于HelloWorld来说,电话拨号器也是Android的一个入门demo,从这个样例我们要理清楚做安卓项目的思路。

 大体分为三步:

    1.理解需求,理清思路

    2.设计UI

    3.代码实现

电话拨号器

1. 理解需求:

    *一个文本框——用来接收电话号码

    *一个button——用来触发事件

2. 设计UI

     

3. 代码实现

public class MainActivity extends Activity {

    private EditText et_number; //定义变量用来接收电话号码
    private Button btn;			//定义button
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置界面内容
        setContentView(R.layout.activity_main);
        
        //查找控件,文本输入框
        et_number= (EditText) findViewById(R.id.et_number);
        
        //找到按钮控件
        btn=(Button) findViewById(R.id.btn);
       
        //设置点击事件监听
        btn.setOnClickListener(new MyListener());
    }
    //内部类方式实现点击事件
    class MyListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			//运行拨号操作
			//1.获取用户输入的号码
			String number=et_number.getText().toString();
			//2.运行拨号操作
			//创建一个拨号意图
			Intent intent=new Intent();
			//设置要拨打的号码  (URL:统一资源定位符,uri:统一资源标识符)
			intent.setData(Uri.parse("tel://"+number));
			//设置动作,拨号动作
			intent.setAction(intent.ACTION_CALL);
			//跳转到拨号界面
			startActivity(intent);
		}    	
    }
}

代码写完以后。从配置文件里加入一下打电话权限CALL_PHONE就OK了。

上面的电话拨号器用了一种实现点击事件的方式。也是要介绍的第一种点击事件的方法:

四种点击事件实现方式

1.内部类方式

     (见上面电话拨号demo,只是多介绍)

2.创建匿名内部类方式

/**
 * 匿名内部类方式实现点击事件
 * @author Hugh
 */
public class MainActivity extends Activity {

	private EditText et_number;
	private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置界面内容
        setContentView(R.layout.activity_main);
        //查找控件,文本输入框
        et_number= (EditText) findViewById(R.id.et_number);
        //找到button控件
        btn=(Button) findViewById(R.id.btn);
        //设置点击事件监听
        btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {				
				//运行拨号操作
					//1.获取用户输入的号码
				String number=et_number.getText().toString();
					//2.运行拨号操作
				//意图
				Intent intent=new Intent();
				//设置要拨打的号码
				intent.setData(Uri.parse("tel://"+number));
				//设置动作,拨号 动作
				intent.setAction(intent.ACTION_CALL);
				//跳转到拨号界面
				startActivity(intent);
			}
		});
    }
}

3.实现OnClickListener接口的当前类对象

/**
 * 实现OnClickListener接口的当前类对象
 * @author Hugh
 */
public class MainActivity extends Activity implements OnClickListener {

	private EditText et_number;
	private Button btn;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 设置界面内容
		setContentView(R.layout.activity_main);
		// 查找控件,文本输入框
		et_number = (EditText) findViewById(R.id.et_number);
		// 找到button控件
		btn = (Button) findViewById(R.id.btn);
		// 设置点击事件监听
		btn.setOnClickListener(this);
	}
	
	@Override
	public void onClick(View v) {
		// 运行拨号操作
		// 1.获取用户输入的号码
		String number = et_number.getText().toString();
		// 2.运行拨号操作
		// 意图
		Intent intent = new Intent();
		// 设置要拨打的号码
		intent.setData(Uri.parse("tel://" + number));
		// 设置动作,拨号 动作
		intent.setAction(intent.ACTION_CALL);
		// 跳转到拨号界面
		startActivity(intent);
	}
}

4.在布局文件里给button加入一个单击事件的响应方法,然后在代码中实现这种方法

/短信群发器/res/layout/activity_main.xml   下定义xml中的属性android:onClick="call"
 <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/et_number"
        android:layout_below="@+id/et_number"
        android:onClick="call"
        android:text="按下拨号" />

在代码中实现这种方法

public class MainActivity extends Activity {

	private EditText et_number;
	private Button btn;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 设置界面内容
		setContentView(R.layout.activity_main);
		// 查找控件,文本输入框
		et_number = (EditText) findViewById(R.id.et_number);
		
	}
	public void call(View view){;
				// 运行拨号操作
				// 1.获取用户输入的号码
				String number = et_number.getText().toString();
				// 2.运行拨号操作
				// 意图
				Intent intent = new Intent();
				// 设置要拨打的号码
				intent.setData(Uri.parse("tel://" + number));
				// 设置动作,拨号 动作
				intent.setAction(intent.ACTION_CALL);
				// 跳转到拨号界面
				startActivity(intent);
	}
}

   对于Android的学习,须要不断的积累。砸实基础。

这篇博客算是个開始吧,我要把博客又一次拾起来,加油!





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5374116.html,如需转载请自行联系原作者  

相关文章
|
11月前
|
XML 数据库 Android开发
探索Android开发:从入门到精通的旅程
在这篇文章中,我们将一起踏上一段激动人心的旅程,通过深入浅出的方式,解锁Android开发的秘密。无论你是编程新手还是有经验的开发者,本文都将为你提供宝贵的知识和技能,帮助你构建出色的Android应用。我们将从基础概念开始,逐步深入到高级技巧和最佳实践,最终实现从初学者到专家的转变。让我们开始吧!
234 3
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
204 1
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
283 7
|
Android开发 开发者
安卓开发中的自定义视图:从入门到精通
【9月更文挑战第19天】在安卓开发的广阔天地中,自定义视图是一块充满魔力的土地。它不仅仅是代码的堆砌,更是艺术与科技的完美结合。通过掌握自定义视图,开发者能够打破常规,创造出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战应用,一步步展示如何用代码绘出心中的蓝图。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创意和效率的大门。让我们一起探索自定义视图的秘密,将你的应用打造成一件艺术品吧!
162 10
|
IDE Java 程序员
安卓应用开发入门:打造你的第一个“Hello World”
【9月更文挑战第11天】在编程的世界里,每一个初学者的旅程都从一个简单的“Hello World”开始。本文将带领安卓开发的新手们,通过简单直观的方式,一步步构建出自己的第一个安卓应用。我们将探索安卓工作室(Android Studio)的安装、项目的创建,以及如何运行和调试你的应用。无论你是编程新手还是想扩展技能的老手,这篇文章都将为你打开一扇通往安卓世界的大门。
406 8
|
11月前
|
XML IDE Java
安卓应用开发入门:从零开始的旅程
【10月更文挑战第23天】本文将带领读者开启一段安卓应用开发的奇妙之旅。我们将从最基础的概念讲起,逐步深入到开发实践,最后通过一个简易的代码示例,展示如何将理论知识转化为实际的应用。无论你是编程新手,还是希望扩展技能的软件工程师,这篇文章都将为你提供有价值的指导和启发。
155 0
|
IDE Java API
安卓应用开发入门:打造你的第一个"Hello World"
【9月更文挑战第11天】在探索安卓开发的海洋中,每个开发者的航行都从简单的"Hello World"开始。本文将作为你的航标,引导你驶向安卓应用开发的精彩世界。我们将一起启航,通过浅显易懂的语言和步骤,学习如何构建并运行你的第一个安卓应用。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供所需的知识和信心。准备好了吗?让我们揭开安卓开发的神秘面纱,一起创造些令人兴奋的东西吧!
|
Web App开发 编解码 视频直播
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输协议以及直播延迟优化等关键问题。希望本文能为你提供有关Andriod端直播技术的深入理解和实践指导。
385 0
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
1516 0
|
XML IDE Java
安卓应用开发入门:打造你的第一个“Hello World”
【8月更文挑战第31天】 在安卓的浩瀚宇宙中,每一个新星都从一句简单的问候开始闪耀。本文将作为你的航标,引导你探索安卓开发的银河系。无论你是初心者还是资深开发者,构建第一个“Hello World”应用总是令人兴奋的里程碑。通过这篇文章,我们将一起搭建起通往安卓开发世界的桥梁。让我们摒弃复杂的术语,用最简单直白的语言,一步步地走过这段旅程。准备好了吗?让我们一起开启这段冒险吧!

热门文章

最新文章