首页 > 技术文章 > (一)电话拨号器

shuaichao 2015-08-31 09:57 原文

一、首先,说一下项目中的重要文件,这是几个必须用到的,因为我是自学中,可能不太准确,希望不要误导别人。

二、开发

1、我的开发思路,首先定义项目中需要用到的变量,因为项目简单,在开发前我们就知道要定义那些变量了、遇到复杂项目我们可以在用到变量是在该文件定义;

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">电话拨号器</string>
    <string name="mobile">请输入手机号</string>
    <string name="button">拨打电话</string>

</resources>

2、页面布局

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView   //标签、相当于lable
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/mobile" />
    <EditText  //文本框、相当于Text
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/mobile">        
    </EditText>
    <Button  //按钮、触发事件
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button"
        android:id="@+id/button"
        />

</LinearLayout>

3、后台代码

MainActivity.java

package ysc.itcast.phone;

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

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    private EditText mobileText; //定义EditText变量,用于获取输入的电话号码
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mobileText=(EditText)findViewById(R.id.mobile);//通过ID得到变量
        
        Button button =(Button)this.findViewById(R.id.button);//得到Button
        button.setOnClickListener(new ButtonClickListener());        //调用事件
        
    }
    
    private     final class ButtonClickListener implements View.OnClickListener{
        public void onClick(View v)
        {
            
            String number=mobileText.getText().toString();//后去电话号码
            //拨打电话的代码
            Intent intent=new Intent();
            intent.setAction("android.intent.action.CALL");
            intent.setData(Uri.parse("tel:"+ number));
            startActivity(intent);
            
        }        
    }
}

4、因为拨打电话涉及到用户的权限、所以需要进行权限设置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ysc.itcast.phone"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".MainActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    //配置拨打电话权限
    <uses-permission android:name="android.permission.CALL_PHONE"/>
</manifest>

就此项目结束,可以在虚拟机上测试、也可在真机上实验。

推荐阅读