Android中点击事件实现的四种方法

来源:互联网 发布:天津淘宝模特好少啊 编辑:程序博客网 时间:2024/06/05 05:58
package com.luckydog.dail;import android.support.v7.app.ActionBarActivity;import android.text.TextUtils;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity implements OnClickListener {private EditText et_number;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //加载布局文件        setContentView(R.layout.fragment_main);        //查找到按钮        Button bt_dail = (Button) findViewById(R.id.bt_dail);        //查找文本        et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);        //给按钮注册点击事件        //1.创建一个内部类,定义点击事件        //bt_dail.setOnClickListener(new MyListener());                //2.采用匿名内部类的方法创建点击事件        /*         * bt_dail.setOnClickListener<span style="color:#ff6666;">(</span>new OnClickListener() {@Overridepublic void onClick(View v) {callPhone();}}<span style="color:#ff6666;">)</span>;*/                 //3.让activity实现点击事件的接口        //bt_dail.setOnClickListener(this);                    }        //4.在布局文件里面绑定一个点击的方法        public void dailButtonClicked(View view){        callPhone();        }            private void callPhone() {String number = et_number.getText().toString().trim();if(TextUtils.isEmpty(number)){Toast toast = Toast.makeText(MainActivity.this, "号码 不能为空", Toast.LENGTH_LONG);toast.show();return;}    Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+number));startActivity(intent);}//1.内部类的点击事件的实现    /*private class MyListener implements OnClickListener{        //当按钮被点击时候的实现方法        @Override    public void onClick(View v) {        callPhone();    }    }*///3.接口里面未实现的方法@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.bt_dail:callPhone();}}    }

总结:

1、创建一个内部类,实现点击事件;

2、用匿名内部类实现点击事件;

3、让activity自己实现点击事件,activity中所有的button都会调用xxx.setOnClickListener(this);在activity中利用switch语句实现各自xxx对应的实现方法;

public void onClick(View v){<span style="white-space:pre"></span>switch (v.getId()) {case R.id.bt_dail:callPhone();}}
4、在布局文件里绑定一个实现方法;
<Button        android:onClick="dailButtonClicked"        android:id="@+id/bt_dail"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_below="@id/et_number"        android:text="@string/dail" />
然后在activity中加入实现方法:
public void dailButtonClicked(View view){        callPhone();        }
                                             
0 0