Android 基础 —— 模拟实现拨打电话功能

前面已经学习活动的显示跳转及隐式跳转,也学习 TextView 及 Button 两个控件的使用,下面我们来学习 EditText 的使用:

      EditText 是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。EditText 的应用场景应该算是非常普遍了,发短信、发微博、聊QQ 等等,在进行这些操作时,你不得不使用到EditText。那我们来看一看如何在界面上加入EditText 吧,修改activity_main.xml 中的代码,如下所示:

[java] view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="match_parent"  
  3.     android:layout_height="match_parent"  
  4.     android:orientation="vertical" >  
  5. ……  
  6.     <EditText  
  7.         android:id="@+id/edit_text"  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="wrap_content"  
  10.     />  
  11. </LinearLayout>  

注意,这里添加了这句

[java] view plain copy
  1. android:orientation="vertical"  

 

     我们还可以结合使用EditText 与Button 来完成一些功能,比如通过点击按钮来获取EditText 中输入的内容。这里,我们就使用这两个控件,实现输入号码并拨号的功能,修改MainActivity 中的代码,如下所示:

[java] view plain copy
  1. package cn.com.qiang.calldemo;  
  2.   
  3. import android.net.Uri;  
  4. import android.os.Bundle;  
  5. import android.app.Activity;  
  6. import android.content.Intent;  
  7. import android.view.View;  
  8. import android.view.View.OnClickListener;  
  9. import android.widget.Button;  
  10. import android.widget.EditText;  
  11.   
  12. public class MainActivity extends Activity {  
  13.   
  14.     @Override  
  15.     protected void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.activity_main);  
  18.           
  19.         Button button1 = (Button)findViewById(R.id.button1);  
  20.         button1.setOnClickListener(new OnClickListener() {  
  21.               
  22.             @Override  
  23.             public void onClick(View v) {  
  24.                 // TODO Auto-generated method stub  
  25.                 Intent intent = new Intent();  
  26.                 intent.setAction(Intent.ACTION_CALL);  
  27.   
  28.                   
  29.                 EditText et = (EditText)findViewById(R.id.et);  
  30.                 String s = et.getText().toString();  
  31.                 intent.setData(Uri.parse("tel:"+s));  
  32.                   
  33.                 startActivity(intent);  
  34.             }  
  35.         });  
  36.     }  
  37. }  

首先通过findViewById()方法得到EditText 的实例,然后在按钮的点击事件里调用EditText 的getText()方法获取到输入的内容,再调用toString()方法转换成字符串,最后仍然还是老方法,使用Toast 将输入的内容显示出来。

但要注意

[java] view plain copy
  1. intent.setAction(Intent.ACTION_CALL);  

[java] view plain copy
  1. intent.setData(Uri.parse("tel:"+s));  

是我们拨打电话的固定格式,后面会进行详解。

 

下面实现实例:

Android 基础 —— 模拟实现拨打电话功能Android 基础 —— 模拟实现拨打电话功能