Android中四种OnClick事件的写法

package com.example.dailphone;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.os.Build;

public class MainActivity extends ActionBarActivity implements OnClickListener{
	
	/** 拨打电话按钮 */
	private Button bt_dail;
	
	/** 输入电话时的文本框 */
	private EditText et_number;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//获得按钮
	    bt_dail = (Button) findViewById(R.id.bt_dail);
	    //获得文本框
	    et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
	    //给按钮添加事件
	    //1. 创建一个内部类定义点击事件
		//bt_dail.setOnClickListener(new MyLisenner());
		
	    //2. new一个匿名内部类定义点击事件
	   /* bt_dail.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				callPhone();
			}
		});*/
	    
	    //3. MainActivity 实现 OnClickListener接口 , 常用方法,通过view的ID+switch实现多个事件
	    //bt_dail.setOnClickListener(this);
	    
	    
	   
	}
	//4. 在布局里文件面绑定一个点击的方法
	/*
	 *   <Button
        android:onClick="dailButtonOnClicked"
        android:id="@+id/bt_dail"
        android:layout_marginTop="40dp"
        android:layout_marginLeft="200dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/dail" />
	 */
    public  void dailButtonOnClicked(View v) {
	     callPhone();
	}
	private class MyLisenner implements OnClickListener {
		@Override
		public void onClick(View v) {
			callPhone();
		}
	}
	
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.bt_dail:
			callPhone();
			break;

		default:
			break;
		}
	}
	
	//拨打电话
	private void callPhone() {
		String number = et_number.getText().toString().trim();
		//判空操作给出"吐丝"提示
		if (TextUtils.isEmpty(number)) {
			Toast toast = Toast.makeText(MainActivity.this, "号码不能为空", Toast.LENGTH_SHORT);
			toast.show();
			return ;
		}
		//意图, 想干一件什么事情  (泡茶)
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_CALL);
		intent.setData(Uri.parse("tel:" + number));
		startActivity(intent);
	}
	

}

  

 

posted @ 2014-07-13 21:36  E_star  阅读(2528)  评论(0编辑  收藏  举报