美文网首页
1、电话拨号器案例

1、电话拨号器案例

作者: Jarvis_zhu | 来源:发表于2017-12-17 10:26 被阅读0次

    电话拨号器


    1、画UI

    UI.png

    2、根据UI写业务逻辑,在MainActivity里面写 在onCreate方法里面写逻辑

            // 加载一个布局
            setContentView(R.layout.activity_main);
            et_number = (EditText) findViewById(R.id.editText1);
            // [2]找到按钮
            Button btn_call = (Button) findViewById(R.id.button1);
    

    3、给按钮设置一个点击事件

            // [3]给按钮设置一个点击事件
            btn_call.setOnClickListener(new MyClickListener());
    

    4、设置按钮的点击事件

    4.1 按钮的四种点击事件

    1. 自己定义一个类去实现方法需要的参数类型
            // 定义一个类去实现按钮需要的接口类型
            private class MyClickListener implements OnClickListener {
    
                @Override
                public void onClick(View v) {
                    // [4]获取edittext文本内容
                    String number = et_number.getText().toString().trim();
                    if ("".equals(number)) {
                        // Context 上下文
                        Toast.makeText(MainActivity.this, "number不能为空", Toast.LENGTH_LONG).show();
                        return;
                    }
    
                    // [5]进行拨打电话 意图 Intent
                    Intent intent = new Intent();// 创建一个意图对象
                    // [5.1]设置动作
                    intent.setAction(Intent.ACTION_CALL);
                    // [5.2]设置要拨打的数据
                    // uri:统一资源标识符 自己定义的路径 想代表什么就代表什么
                    // url:统一资源定位符www.baidu.com
                    intent.setData(Uri.parse("tel:" + number));
    
                    // [6]开启意图
                    startActivity(intent);
    
                }
    
            }
    
    1. 设置按钮的第二种点击事件,采用匿名内部类的方式
            // ☆按钮的第二种点击事件 匿名内部类的方式
            btn_call.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    callPhone();
                }
            });
    
    1. 设置按钮的第三种点击事件,让当前类去实现onClickListener接口

    如果界面上的按钮数量比较多,采用这种方法非常好,我们只要在实现的方法里面去判断一下按钮的ID就好了。

    public class MainActivity extends Activity implements OnClickListener {
    
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 加载一个布局
            setContentView(R.layout.activity_main);
            et_number = (EditText) findViewById(R.id.editText1);
            // [2]找到按钮
            Button btn_call = (Button) findViewById(R.id.button1);
            Button btn_call1 = (Button) findViewById(R.id.button2);
            Button btn_call2 = (Button) findViewById(R.id.button3);
            Button btn_call3 = (Button) findViewById(R.id.button4);
            // [3]给按钮设置一个点击事件
            // btn_call.setOnClickListener(new MyClickListener());
    
            // ☆按钮的第三种点击事件 主类实现onClickListener的方式
            btn_call.setOnClickListener(this);
            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:
                callPhone();
                break;
            case R.id.button2:
                callPhone();
                break;
            case R.id.button3:
                callPhone();
                break;
            case R.id.button4:
                System.out.println("你点击了我");
                break;
    
            default:
                break;
            }
        }
    
    1. 在布局文件里面增加onClick属性,同时添加属性对应的方法click
            android:text="test"
            android:onClick="click"
    
        // [5]按钮的第四种点击事件,申明一个方法,方法名和你要点击的这个按钮在布局中申明的属性一样
        public void click(View v) {
            // 拨打电话
            callPhone();
        }
    

    5、一定要记得加上拨打电话的权限

    <uses-permission android:name="android.permission.CALL_PHONE"/>
    

    相关文章

      网友评论

          本文标题:1、电话拨号器案例

          本文链接:https://www.haomeiwen.com/subject/eerywxtx.html