android项目--拨打电话
今天才算是我们真正的做了一个android的项目
第一步:编写string.xml文件:
注:保存后自行查看R.java文件,在string静态内部类中会多出两条常量。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Phone</string>
<string name="dial">输入手机号</string>
<string name="button">拨打</string>
</resources>
第二步:编写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
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/dial" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/phone"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"/>
</LinearLayout>
注:EditText视图组件相当于HTML中的input控件,用以接受输入。
Button视图组件则是接受点击事件。
二者与TextView视图组件每行显示一个,共显示三行。
为了能够在点击“拨打”按钮后能真正的拨打电话,我们需要为该按钮天机一个点击事件监听器
具体方法是:需要在main.xml文件中为该按钮天机一个唯一标识符,也就是指定它的id属性。
延伸:“@+id/string_name”表达式:“+”表示在R.java的名为id的内部类中添加一条记录。
如:“@+id/button”的含义是在R.java文件中的id这个静态内部类添加一条常量名为button,该常量就是该资源的标识符。如果id这个静态内部类不存在,则会先生成它。通过该方式生成的资源标识符,仍然可以以“@+id/string_name”的方式引用。
第三步:查看R.java文件
package cn.lyhz;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int button=0x7f050001;
public static final int phone=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
public static final int button=0x7f040002;
public static final int dial=0x7f040001;
}
}
第四步:编写PhoneActivity.java文件
package cn.lyhz;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class PhoneActivity extends Activity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText number = (EditText) findViewById(R.id.phone);
String phone = number.getText().toString();//获取手机号
if((number!=null)&&(!"".equals(phone.trim()))){//判断手机号是否为空
//数据都是通过Uri进行包装的,创建一个拨号意图
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone));
startActivity(intent);
}
}
});
}
}
第四步:启动android application,创建两个模拟器进行验证