打電話應用 system/app/phone.apk 這個是打電話應用,這個Java API 不允許應用級程式員改寫,系統級才可以 system/app/dialer.apk 這個是撥號器應用,可以重寫一個第三方的撥號器 1.在res-layout-activity_main.xml里定義佈局: 2 ...
打電話應用
system/app/phone.apk 這個是打電話應用,這個Java API 不允許應用級程式員改寫,系統級才可以
system/app/dialer.apk 這個是撥號器應用,可以重寫一個第三方的撥號器
1.在res-layout-activity_main.xml里定義佈局:
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" 10 android:orientation="vertical" > 11 <TextView 12 android:layout_width="wrap_content" 13 android:layout_height="wrap_content" // 組件必須設置寬高,否則不能通過編譯 14 android:text="請輸入號碼:" 15 /> 16 <EditText 17 android:layout_width="match_parent" 18 android:layout_height="wrap_content" 19 android:id="@+id/et" 20 /> 21 <Button 22 android:layout_width="match_parent" 23 android:layout_height="wrap_content" 24 android:text="撥打" 25 android:id="@+id/bt" // 如果要在java代碼中操作某個組件,則組件需要設置id,這樣才能在代碼中通過id拿到這個組件 26 /> 27 28 </LinearLayout>
2.src里寫源代碼
1 public class MainActivity extends Activity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { //App創建時調用由操作系統調用此方法 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 //給按鈕設置點擊監聽 8 //拿到按鈕對象 9 Button bt = (Button) findViewById(R.id.bt); 10 //設置監聽 11 bt.setOnClickListener(new Myclick()); 12 } 13 14 class Myclick implements OnClickListener{ 15 @Override 16 public void onClick(View arg0) { 17 // TODO Auto-generated method stub 18 System.out.print("按鈕被點擊了"); 19 EditText et = (EditText) findViewById(R.id.et); 20 String phone = et.getText().toString(); 21 //在一個應用中啟動另一個應用,在撥號器應用里啟動打電話應用
//Android系統中基於動作機制,來調用系統的應用,你告訴系統你想做什麼動作,系統就會把能做這個動作的應用給你,如果沒有這個應用,會拋異常
//設置動作,通過意圖告知系統
22 Intent intent = new Intent(); 23 intent.setAction(Intent.ACTION_CALL);//設置動作,打電話 24 intent.setData(Uri.parse("tel:"+phone)); 25 startActivity(intent);//把意圖告訴系統 26 } 27 28 } 29 30 31 }
3.添加許可權,在清單文件里,底下的permission-add-UsesPermission-右側的name進行選擇相應的許可權,在代碼中會自動生成,如下:
<uses-permission android:name="android.permission.CALL_PHONE"/>
RunAs--AndroidApplication,運行結果如下:
補充一點:
事件監聽這個是常見的
點擊事件的四種寫法
第一種
* 定義一個MyListener實現onClickListener介面
Button bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new MyListener());
第二種
* 定義一個匿名內部類實現onClickListener介面
Button bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("第二種");
}
});
第三種
* 讓當前activity實現onClickListener介面
Button bt3 = (Button) findViewById(R.id.bt3);
bt3.setOnClickListener(this);
第四種
* 給Button節點設置onClick屬性,
android:onClick="click"
* 然後在activity中定義跟該屬性值同名的方法
public void click(View v){
System.out.println("第四種");
}