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,如需转载请自行联系原作者  

相关文章
|
4月前
|
数据库 Android开发 开发者
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
36 0
|
4月前
|
存储 XML Android开发
Android Studio App开发入门之数据存储中共享参数SharedPreferneces的讲解及使用(附源码 超详细必看)
Android Studio App开发入门之数据存储中共享参数SharedPreferneces的讲解及使用(附源码 超详细必看)
29 0
|
4月前
|
Android开发
Android Studio APP开发入门之对话框Dialog的讲解及使用(附源码 包括提醒对话框,日期对话框,时间对话框)
Android Studio APP开发入门之对话框Dialog的讲解及使用(附源码 包括提醒对话框,日期对话框,时间对话框)
33 0
|
4月前
|
XML 监控 Android开发
Android Studio App开发入门之文本输入EditText的讲解及使用(附源码 包括编辑框、焦点变更监听器、文本变化监听器 )
Android Studio App开发入门之文本输入EditText的讲解及使用(附源码 包括编辑框、焦点变更监听器、文本变化监听器 )
108 0
|
4月前
|
Android开发
Android Studio入门之图像显示解析及实战(附源码 超详细必看)(包括图像视图、图像按钮、同时展示文本与图像)
Android Studio入门之图像显示解析及实战(附源码 超详细必看)(包括图像视图、图像按钮、同时展示文本与图像)
67 1
|
4月前
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
81 0
|
1月前
|
测试技术 API 调度
【Android 从入门到出门】第七章:开始使用WorkManager
【Android 从入门到出门】第七章:开始使用WorkManager
19 3
【Android 从入门到出门】第七章:开始使用WorkManager
|
1月前
|
存储 Android开发 C++
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
30 3
|
1月前
|
Android开发
【Android 从入门到出门】第四章:现代Android开发中的导航
【Android 从入门到出门】第四章:现代Android开发中的导航
22 2
【Android 从入门到出门】第四章:现代Android开发中的导航
|
1月前
|
XML API Android开发
【Android 从入门到出门】第三章:使用Hilt处理Jetpack Compose UI状态
【Android 从入门到出门】第三章:使用Hilt处理Jetpack Compose UI状态
26 4