需要一个文本输入框输入号码,需要一个按钮打电话。本质:点击按钮,调用系统打电话功能。
xml布局文件代码::
<LinearLayout 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" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入号码" /> <EditText android:id="@+id/et_phone" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/bt_call" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="拨打" /> </LinearLayout>
mainactivity中代码:
package com.ydl.dialer; 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); //给按钮设置点击侦听 //1.拿到按钮对象 Button bt = (Button) findViewById(R.id.bt_call);//Button类是View的子类,向下转型要强转。 //2.设置侦听 bt.setOnClickListener(new MyListener()); } class MyListener implements OnClickListener{ //按钮被点击时,此方法调用 @Override public void onClick(View v) { //获取用户输入的号码 EditText et = (EditText) findViewById(R.id.et_phone); String phone = et.getText().toString(); //我们需要告诉系统,我们的动作:我要打电话 //创建意图对象 Intent intent = new Intent(); //把打电话的动作ACTION_CALL封装至意图对象当中 intent.setAction(Intent.ACTION_CALL); //设置打给谁 intent.setData(Uri.parse("tel:" + phone));//这个tel:必须要加上,表示我要打电话。否则不会有打电话功能,由于在打电话清单文件里设置了这个“协议” //把动作告诉系统,启动系统打电话功能。 startActivity(intent); } } }