Android开发之入门基础篇--拨号器的四种实现方式
生活随笔
收集整理的這篇文章主要介紹了
Android开发之入门基础篇--拨号器的四种实现方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
整理之前的學習筆記,發現了很多在學習Android基礎的過程中的一些很適合一些新手開發的代碼,想想之前也是一步一個腳印,一行一行的代碼敲出來的,雖然這些代碼很簡單,但是里面的編程思路卻是很有學習意義的,對以后的開發的編程思想也有很大幫助,
第一種實現方式:使用內部類實現
-->?具體的思路如下: -->當activity創建的時候就會調用oncreate()方法.在方法中做初始化操作.? ? -->首先調用setContentView方法.加載界面.展示出來.
? ? -->當點擊按鈕的時候需要獲取輸入框控件的內容.首先要拿到控件.調用相關方法.findViewById()
? ? -->我們需要的是editText.是view的子類.強轉到editText
? ? -->同樣的方法找到button控件
? ? -->給按鈕添加點擊事件,當點擊按鈕的時候調用對應的方法
? ? -->OnClickListener是一個接口.用一個內部類去實現這個接口.
? ? -->在OnClick()方法中.點擊按鈕就會執行此方法
? ? -->判斷輸入框的內容是否為空,若為空則提示.判斷用到方法TextUtils.isEmpty()
? ??? ? 提示用Toast.makeText().show();切記不要忘記.show();
? ? -->內容不為空的話用獲取到的內容撥打電話.此時又要重新開啟一個activity.
? ??? ? startActivity(intent);
? ??? ???intent.setData(Uri.parse("tel:" + number));
? ??? ? intent.setAction(Intent.ACTION_CALL);
此時已經基本大功告成了,但是電話是需要獲取權限.在android.manifest.xml清單文件Permisssions.call_phone public class MainActivity extends Activity {private EditText et_number;//Activity 代表了一個用戶的界面 每一個android的界面都對應一個activity//activity可以創建一個窗口在這個窗口上加載用戶的界面(UI) 這個界面就是用來跟用戶交互的@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//當activity創建的時候就會調用oncreate 在oncreate中做初始化的操作// 首先調用setcontentView方法 加載界面 加載到內存 展示出來setContentView(R.layout.activity_main);//找到要操作的控件對應的java對象 findViewById 這個方法的返回值 是view對象//View 是所有android控件的父類 et_number = (EditText) findViewById(R.id.editText1);Button btn_call = (Button) findViewById(R.id.button1);MyonclickListener listener = new MyonclickListener();//給按鈕添加點擊事件btn_call.setOnClickListener(listener);}private class MyonclickListener implements OnClickListener{@Overridepublic void onClick(View v) {//當控件被點擊的時候就會調用這個onclick方法//①獲取用戶的輸入String number = et_number.getText().toString();//②判斷用戶輸入是否為空if(TextUtils.isEmpty(number)){//如果為空 提示用戶輸入內容//Toast.makeText 向界面輸出一個短暫的提示 //第一個參數 上下文context Activity就是一個上下文 可以傳入當前activity對象//第二個參數 要顯示的提示文字//第三個參數 顯示提示的時間長度 Toast.LENGTH_SHORT(顯示的時長較短) Toast.LENGTH_LONG(顯示時間稍長)//不要忘記要調用show()方法 顯示這個ToastToast.makeText(MainActivity.this, "電話號碼不能為空", Toast.LENGTH_SHORT).show();System.out.println("用戶輸入是空的");}else{//如果不為空 用獲取的電話號碼 打電話System.out.println("打電話:"+number);//Intent 意圖 就是對要進行的操作的抽象描述Intent intent = new Intent();//給意圖設置要操作的動作 打電話的動作 ACTION_CALLintent.setAction(Intent.ACTION_CALL);//給意圖設置要攜帶的數據//URL 統一資源定位符 http:// ftp:// https:// abc:////uri 統一資源標示符 可以自定義協議 url 子類父類的關系Uri data = Uri.parse("tel:"+number);intent.setData(data);//開啟打電話的activity(打電話的界面)startActivity(intent);}}} }第二種實現方式: -->既然第一種方式是通過有名的內部類來實現的話,那么自然也有匿名內部類咯,好的,一看就懂的 public class MainActivity extends Activity {private EditText et_number;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到要操作的控件et_number = (EditText) findViewById(R.id.editText1);Button btn_call = (Button) findViewById(R.id.button1);//給按鈕添加點擊事件 匿名內部類btn_call.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//獲取用戶輸入String number = et_number.getText().toString().trim();//判斷輸入是否為空if(TextUtils.isEmpty(number)){//為空提示用戶Toast.makeText(MainActivity.this, "輸入不能為空", Toast.LENGTH_SHORT).show();}else{//不為空打電話Intent intent = new Intent();//指定動作intent.setAction(Intent.ACTION_CALL);//設置數據intent.setData(Uri.parse("tel:"+number));startActivity(intent);}}});} }第三種實現方式: -->直接使用當前類對象,讓當前類對象實現對應的接口 package com.hutu.call03; public class MainActivity extends Activity implements OnClickListener{private EditText et_number;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_number = (EditText) findViewById(R.id.editText1);Button btn = (Button) findViewById(R.id.button1);Button btn2 = (Button) findViewById(R.id.button2);Button btn3 = (Button) findViewById(R.id.button3);btn.setOnClickListener(this);btn2.setOnClickListener(this);btn3.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubint id = v.getId();//先要得到輸入的內容,再把內容傳入String number = et_number.getText().toString().trim();switch (id) {case R.id.button1:if (TextUtils.isEmpty(number)) {//把輸入框的內容傳入方法中如果是空就提示Toast.makeText(this, "輸入不能為空", Toast.LENGTH_SHORT).show();System.out.println("用戶輸入為空");}else {Intent intent = new Intent();intent.setData(Uri.parse("tel:" + number));intent.setAction(Intent.ACTION_CALL);//輸入框有內容就撥出去.撥號需要啟動另一個activitystartActivity(intent );}break;case R.id.button2:Toast.makeText(this, "點擊了第二個按鈕", Toast.LENGTH_LONG).show();break;case R.id.button3:Toast.makeText(this, "點擊了第三個按鈕", Toast.LENGTH_SHORT).show();break;}} }
第四種實現方式: -->在布局文件中聲明onClick屬性 布局文件中的部分代碼如下,把onclick設置為了button的屬性,在主活動中創建onClick()的方法 <Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/editText1"android:onClick="call"android:text="撥打此號碼" />ackage com.hutu.call04; public class MainActivity extends Activity {private EditText et_number;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_number = (EditText) findViewById(R.id.editText1);}public void call(View v){//得到輸入框的內容String number = et_number.getText().toString().trim();//判斷是否為空if (TextUtils.isEmpty(number)) {Toast.makeText(this, "沒有輸入號碼啊傻逼", Toast.LENGTH_LONG).show();}else {Intent intent = new Intent();intent.setData(Uri.parse("tel:" + number));intent.setAction(Intent.ACTION_CALL);startActivity(intent);}} }
總結
以上是生活随笔為你收集整理的Android开发之入门基础篇--拨号器的四种实现方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ie无法下载 无法打开该internet
- 下一篇: PL角色认知