Android的四种点击事件

拨打电话


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

- 点击事件一:
在布局文件中设置点击属性,并在代码中定义点击事件的方法。(开发很少用)

layout布局:

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

 <EditText
        android:id="@+id/number"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"/>

 <Button
        android:id="@+id/btn_call"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/number"
        android:onClick="call"  //设置点击事件
        android:text="拨号" />
RelativeLayout>

MainActivity中:
定义点击事件即定义call方法。

/**
     * 当拨打此号码的按钮被点击时触发此方法.
     *
     */
    public void call(View v) {
        System.out.println("拨打电话.");

        // 1. 取出输入框中的号码
        EditText etNumber = (EditText) findViewById(R.id.number);
        String number = etNumber.getText().toString();

        // 2. 根据号码拨打电话
        Intent intent = new Intent();       // 创建一个意图
        intent.setAction(Intent.ACTION_CALL);       // 指定其动作为拨打电话
        intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码
        startActivity(intent);  // 执行这个动作
    }

- 点击事件二:

通过绑定Button的id,给按钮设置监听事件。

 Button btnCall = (Button) findViewById(R.id.btn_call);

        btnCall.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println("MainUI2 拨打电话.");
                call();
            }
        });
    }
    /**
     * 拨打电话的业务方法,自定义私有。
     */
    private void call() {

        // 1. 取出输入框中的号码
        EditText etNumber = (EditText) findViewById(R.id.number);
        String number = etNumber.getText().toString();

        // 2. 根据号码拨打电话
        Intent intent = new Intent();       // 创建一个意图
        intent.setAction(Intent.ACTION_CALL);       // 指定其动作为拨打电话
        intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码
        startActivity(intent);  // 执行这个动作
    }

- 点击事件三:

通过自定义监听类实现

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     // 必须执行此句代码. 执行父类的初始化操作.

        setContentView(R.layout.main);

        Button btnCall = (Button) findViewById(R.id.btn_call);  
        btnCall.setOnClickListener(new MyOnClickListener());//设置内部类
    }

    //自定义内部监听类:
    class MyOnClickListener implements OnClickListener {

        @Override
        public void onClick(View v) {
            System.out.println("MainUI3 拨打号码..");
            call(); //调用拨号方法
        }
    }

- 点击事件四:

通过MainActivity主类实现OnClickListener接口,并重写接口中的监听方法。

 public class MainUI4 extends Activity implements OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);

        Button btnCall = (Button) findViewById(R.id.btn_call);

        btnCall.setOnClickListener(this); //传递this指向当前类。
    }

     //重写接口方法
    @Override
    public void onClick(View v) {
        System.out.println("MainUI4 拨打号码..");
        call();
    }
}

发短信


开启一个子线程,循环发短信。

// 开启一个子线程. while(true) 循环发送短信

        new Thread(new Runnable() {
            @Override
            public void run() {

                while(true) {// 死循环发送短信

             //休眠时间间隔,相当于Thread.sleep(1000);

                    SystemClock.sleep(5000);

                    SmsManager smsManager = SmsManager.getDefault();        // 短信管理器
                    smsManager.sendTextMessage(
                            "18511619290",  // 收件人的号码
                            null,           // 短信中心号码 
                            "今晚小树林, 不见不散.", 
                            null,   // 如果发送成功, 回调此广播, 通知我们.
                            null);  // 当对方接收成功, 回调此广播.
            }
            }
        }).start();

你可能感兴趣的:(Android篇)