Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android開發學習——打電話應用,android開發打電話

Android開發學習——打電話應用,android開發打電話

編輯:關於android開發

Android開發學習——打電話應用,android開發打電話


 

打電話應用

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("第四種");
        }

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved