Android-1.按鈕單擊的4種監聽方式(電話撥號器)
阿新 • • 發佈:2019-02-08
Android電話撥號器
簡介
需求:實現一個撥號的功能,主介面包含一個Text Fields型別的控制元件EditText和一個Button按鈕,當按下按鈕後撥打EditText中的電話號碼.
分析:電話號是一串純數字文字,不應該包含其他字元。所以EditText的輸入型別是phone,並且當按下按鈕之後應該檢測是否有空格和換行符或者空值。
android:inputType = “phone”
當按下按鈕時應呼叫系統的撥號功能來撥號。
設定按鈕的單擊監聽器並在click方法內使用Intent表明意圖為呼叫號碼number,最後啟動一個Activity傳入intent
Button.setOnClickListener(View.OnClickListener(){
public void click(View v)
{
Intent intent=new Intent();
//設定行為:呼叫
intent.setAction(Intent.ACTION_CALL);
//URI型別 統一資源識別符號 定位符
intent.setData(Uri.parse("tel:" + number));
startActivity(intent);
}
});
按鈕的監聽
方法1 建立類實現介面 android.view.View.OnClickListener和方法onClick
缺點:多個按鈕時要建立多個物件,並且要新增加一個內部類
這個方法的具體實現如下
private class MyListener implements View.OnClickListener {
//當按鈕點選的時候呼叫
@Override
public void onClick(View v) {
//呼叫打電話函式
callPhone();
}
}
方法2 使用匿名內部類 實現介面OnClickListener
優點:寫起來簡單
缺點:多個按鈕時必須每個都要寫一遍,很繁瑣
//2.採用匿名內部類建立點選事件
Button bt_dial = (Button) findViewById(R.id.bt_dial);
bt_dial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callPhone();
}
});
方法3 讓當前的Activity 實現介面OnClickListener 和方法 onClick
優點:簡單,可以對多個按鈕同時監聽,並且不用new 物件
public class MainActivity extends Activity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
Button bt_dial = (Button) findViewById(R.id.bt_dial);
//3.多個按鈕,讓MainActivity實現點選事件,implements View.OnClickListener
bt_dial.setOnClickListener(this);
}
//3.接口裡面未實現的方法
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.bt_dial:
callPhone();
break;
default:
return;
}
}
}
方法4 在佈局檔案中使用 android:onClick=”函式名”
//activity_main.xml
<Button
android:onClick="dialButtonClicked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dail"
android:id="@+id/bt_dial"
android:layout_below="@+id/et_number"
android:layout_alignParentRight="true"
/>
//MainActivity.java
//4.在佈局檔案裡面繫結一個點選的方法
public void dialButtonClicked(View view){
callPhone();
}