andriod系统是一个基于事件驱动行为一种系统
andirod添加事件驱动有四种方式
第一种自定义一个内部类实现OnclickListener
private class MyListenner implements OnclickListener{
public void OnClick(View w){
}
}
然后onCreate 方法
调用Button dail=(Button)this.findByViewId(R.Id.et_numer);
dail.setOnClickListnener(new MyListenner());
第二种方式通过直接调用匿名匿名内部类使用
第三种 MainActivy直接实现OnclickListener接口
实现Onclick()方法
第四种自定义函数,然后进行业务逻辑的使用
实列1 电话拨号实列
package com.org.login;
import com.org.msg.MessageTools;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* 主见面的activty
* @author wangsl
*
*/
public class MainActivity extends Activity implements OnClickListener{
private String tag="MainActivity";
private EditText ets_number; //输入电话号码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tel_phone_main);
Button bt_telphone=(Button) findViewById(R.id.bt_telphone); //如果Button类型,需要Button类型接收
//监听事件的多种写法,第一种自定义内部类
//bt_telphone.setOnClickListener(new MyListenner());
//第二种写法调用匿名内部类使用
// bt_telphone.setOnClickListener(new OnClickListener() {
//
// @Override
// public void onClick(View v) {
// // TODO Auto-generated method stub
//
// }
// });
//第三种类自身实现Onclick接口 MainActivity extends Activity implements OnClickListener
ets_number=(EditText) findViewById(R.id.ets_number);
bt_telphone.setOnClickListener(this);
//第四种自定义一个方法调用
}
/**
* 自定义内容部类
* @author wangsl
*
*/
private class MyListenner implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
callPhone();
}
}
public void sendPhone(){
callPhone();
}
/*
* 拨打电话
*/
public void callPhone() {
String number=ets_number.getText().toString();
//System.out.print("number==="+number);
//Log.e(tag, "number==="+number);
if(TextUtils.isEmpty(number)){ // TextUtil字符比较工具类需经常使用
Toast.makeText(MainActivity.this, MessageTools.TEL_PHOME_ERROR_MES, Toast.LENGTH_SHORT).show(); //Toast是一个消息对象
return ;
}
//电话拨打有关对象
Intent intent=new Intent();
intent.setAction(intent.ACTION_CALL); //执行拨打电话操作
intent.setData(Uri.parse("tel:"+number)); //执行输入拨打电话号码
startActivity(intent); //开始拨打
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
callPhone();
}
}
布局tel_phone_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.org.login.MainActivity" >
<TextView
android:id="@+id/tv_input_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:text="@string/please_input_number" />
<EditText
android:id="@+id/ets_number"
android:lines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/tv_input_number"
android:inputType="phone"
android:labelFor="@+id/et_number" >
</EditText>
<Button
android:id="@+id/bt_telphone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/ets_number"
android:layout_marginTop="16dp"
android:text="@string/tel_phone_btn" />
</RelativeLayout>
来源:oschina
链接:https://my.oschina.net/u/238082/blog/488643