電話撥號器
1阱飘、畫UI
2斥杜、根據(jù)UI寫業(yè)務邏輯,在MainActivity里面寫 在onCreate方法里面寫邏輯
// 加載一個布局
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.editText1);
// [2]找到按鈕
Button btn_call = (Button) findViewById(R.id.button1);
3俯萌、給按鈕設置一個點擊事件
// [3]給按鈕設置一個點擊事件
btn_call.setOnClickListener(new MyClickListener());
4果录、設置按鈕的點擊事件
4.1 按鈕的四種點擊事件
- 自己定義一個類去實現(xiàn)方法需要的參數(shù)類型
// 定義一個類去實現(xiàn)按鈕需要的接口類型
private class MyClickListener implements OnClickListener {
@Override
public void onClick(View v) {
// [4]獲取edittext文本內(nèi)容
String number = et_number.getText().toString().trim();
if ("".equals(number)) {
// Context 上下文
Toast.makeText(MainActivity.this, "number不能為空", Toast.LENGTH_LONG).show();
return;
}
// [5]進行撥打電話 意圖 Intent
Intent intent = new Intent();// 創(chuàng)建一個意圖對象
// [5.1]設置動作
intent.setAction(Intent.ACTION_CALL);
// [5.2]設置要撥打的數(shù)據(jù)
// uri:統(tǒng)一資源標識符 自己定義的路徑 想代表什么就代表什么
// url:統(tǒng)一資源定位符www.baidu.com
intent.setData(Uri.parse("tel:" + number));
// [6]開啟意圖
startActivity(intent);
}
}
- 設置按鈕的第二種點擊事件,采用匿名內(nèi)部類的方式
// ☆按鈕的第二種點擊事件 匿名內(nèi)部類的方式
btn_call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
callPhone();
}
});
- 設置按鈕的第三種點擊事件咐熙,讓當前類去實現(xiàn)onClickListener接口
如果界面上的按鈕數(shù)量比較多弱恒,采用這種方法非常好,我們只要在實現(xiàn)的方法里面去判斷一下按鈕的ID就好了棋恼。
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加載一個布局
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.editText1);
// [2]找到按鈕
Button btn_call = (Button) findViewById(R.id.button1);
Button btn_call1 = (Button) findViewById(R.id.button2);
Button btn_call2 = (Button) findViewById(R.id.button3);
Button btn_call3 = (Button) findViewById(R.id.button4);
// [3]給按鈕設置一個點擊事件
// btn_call.setOnClickListener(new MyClickListener());
// ☆按鈕的第三種點擊事件 主類實現(xiàn)onClickListener的方式
btn_call.setOnClickListener(this);
btn_call1.setOnClickListener(this);
btn_call2.setOnClickListener(this);
btn_call3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
callPhone();
break;
case R.id.button2:
callPhone();
break;
case R.id.button3:
callPhone();
break;
case R.id.button4:
System.out.println("你點擊了我");
break;
default:
break;
}
}
- 在布局文件里面增加onClick屬性返弹,同時添加屬性對應的方法click
android:text="test"
android:onClick="click"
// [5]按鈕的第四種點擊事件,申明一個方法爪飘,方法名和你要點擊的這個按鈕在布局中申明的屬性一樣
public void click(View v) {
// 撥打電話
callPhone();
}
5义起、一定要記得加上撥打電話的權限
<uses-permission android:name="android.permission.CALL_PHONE"/>