今天我们实现一个简单的手机拨号器,其设计如下 :
下面是一个PhoneActivity.java文件,当PhoneActivity对象实例化之后会调用onCreate()方法,完成初始化操作,因此我们可以将为按钮添加处理点击事件的初始化代码写入onCreate()方法中去。
package cn.class3g.activity;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class PhoneActivity extends Activity {
EditText numberEt;
Button dialBtn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
dialBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 调用系统的拨号服务实现电话拨打功能
String phone_number = numberEt.getText().toString();
phone_number = phone_number.trim();
if (phone_number != null && !phone_number.equals("")) {
// 封装一个拨打电话的intent,并且将电话号码包装成一个Uri对象传入
Intent intent = new Intent(Intent.ACTION_CALL, Uri
.parse("tel:" + phone_number));
PhoneActivity.this.startActivity(intent);
}
}
});
}
public void findViews() {
numberEt = (EditText) this.findViewById(R.id.phone_number);
dialBtn = (Button) this.findViewById(R.id.dial_btn);
}
}
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/input_info" />
<EditText
android:id="@+id/phone_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/dial_btn"
android:layout_width="139dp"
android:layout_height="62dp"
android:text="@string/dial_caption" />
</LinearLayout>
string.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, PhoneActivity!</string>
<string name="app_name">Phone</string>
<string name="input_info">请输入您要拨打的号码:</string>
<string name="dial_caption">拨打</string>
</resources>
R.java中:
package cn.class3g.activity;
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 button1=0x7f050002;
public static final int dial_btn=0x7f050001;
public static final int phone_number=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int dial_caption=0x7f040003;
public static final int hello=0x7f040000;
public static final int input_info=0x7f040002;
}
}