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

时间:2022-11-10 00:26:14

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

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
……
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>

注意,这里添加了这句

android:orientation="vertical"

 

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

package cn.com.qiang.calldemo;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);


EditText et = (EditText)findViewById(R.id.et);
String s = et.getText().toString();
intent.setData(Uri.parse("tel:"+s));

startActivity(intent);
}
});
}
}

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

但要注意

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+s));

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

 

下面实现实例:

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