安卓电话拨号器案例和四种按钮点击事件

时间:2020-12-31 19:36:10

第一种点击事件(电话拨号器案例):内部类实现(最后需要在清单文件添加拨打电话的权限)

 1 package com.lidaochen.phonecall;
 2 
 3 import android.content.Intent;
 4 import android.net.Uri;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.EditText;
10 import android.widget.Toast;
11 
12 public class MainActivity extends AppCompatActivity {
13     private EditText et_number;
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_main);
18         // 1、找到EditText控件
19         et_number = (EditText)findViewById(R.id.EditText);
20         // 2、找到Button控件
21         Button btn_call = (Button)findViewById(R.id.Button);
22         // 3、给Button按钮设置一个点击事件
23         btn_call.setOnClickListener(new MyClickListener());
24     }
25     // 定义一个类去实现 按钮需要的接口类型
26     private class MyClickListener  implements View.OnClickListener{
27         @Override
28         public void onClick(View v){
29             // 4、获取EditText控件内容
30             String number = et_number.getText().toString().trim();
31             if("".equals(number))
32             {
33                 Toast.makeText(MainActivity.this, "number不能为空", Toast.LENGTH_LONG).show();
34             }
35             // System.out.println("按钮被点击了!" + number);
36             // 5、进行拨打电话
37             // 创建一个意图
38             Intent intent = new Intent();
39             // 设置动作
40             intent.setAction(Intent.ACTION_CALL);
41             // 设置要拨打的数据
42             intent.setData(Uri.parse("tel" + number));
43             // 开启意图
44             startActivity(intent);
45     }
46     }
47 }

第二种点击事件:匿名内部类实现

 1 package com.lidaochen.phonecall;
 2 
 3 import android.content.Intent;
 4 import android.net.Uri;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.EditText;
10 import android.widget.Toast;
11 
12 public class MainActivity extends AppCompatActivity {
13     private EditText et_number;
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_main);
18         // 1、找到EditText控件
19         et_number = (EditText)findViewById(R.id.EditText);
20         // 2、找到Button控件
21         Button btn_call = (Button)findViewById(R.id.Button);
22         // 3、给Button按钮设置一个点击事件
23         btn_call.setOnClickListener(new View.OnClickListener() {
24             @Override
25             public void onClick(View v) {
26                 Toast.makeText(MainActivity.this, "Hello World!", 1).show();
27             }
28         });
29     }
30 }

第三种点击事件:(比较适合按钮比较多的情况)

 

package com.lidaochen.phonecall;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.ThemedSpinnerAdapter;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText et_number;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 1、找到EditText控件
        et_number = (EditText)findViewById(R.id.EditText);
        // 2、找到Button控件
        Button btn_call1 = (Button)findViewById(R.id.Button1);
        Button btn_call2 = (Button)findViewById(R.id.button);
        Button btn_call3 = (Button)findViewById(R.id.button2);
        // 3、给Button按钮设置一个点击事件
        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:
                Toast.makeText(this, "Hello1", Toast.LENGTH_LONG).show();
                break;
            case R.id.button:
                Toast.makeText(this, "Hello2", Toast.LENGTH_LONG).show();
                break;
            case R.id.button2:
                Toast.makeText(this, "Hello3", Toast.LENGTH_LONG).show();
                break;
            default:
                break;
        }
    }
}

 

第四种点击事件:XML文件中设置按钮的OnClick属性

 

package com.lidaochen.phonecall;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.ThemedSpinnerAdapter;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity{
    private EditText et_number;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void click(View v)
    {
        Toast.makeText(this, "Hello World!", Toast.LENGTH_SHORT).show();
    }
}