第一种
创建事件接口实现类,并创建其对象 进行绑定
package cn.stanley;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加 载视图配置
setContentView(R.layout.fragment_main);
//findViewById 根据id 找对象
Button bt_call=(Button) this.findViewById(R.id.bt_call);
//事件注册
bt_call.setOnClickListener( new MyListener());
}
/**
* 事件实现类
* @author Administrator
*
*/
private class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
EditText et_number= (EditText) MainActivity.this.findViewById(R.id.et_phoneNumber);
String number=et_number.getText().toString();
//创建动作意向
Intent intent =new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//开启新的视图
startActivity(intent);
}
}
}
第二种
利用匿名内部内来绑定事件
package cn.stanley;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加 载视图配置
setContentView(R.layout.fragment_main);
//findViewById 根据id 找对象
Button bt_call=(Button) this.findViewById(R.id.bt_call);
//事件注册
bt_call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText et_number= (EditText) MainActivity.this.findViewById(R.id.et_phoneNumber);
String number=et_number.getText().toString();
//创建动作意向
Intent intent =new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//开启新的视图
startActivity(intent);
}
});
}
}
第三种
利用当前activity 实现事件接口来绑定 事件
package cn.stanley;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加 载视图配置
setContentView(R.layout.fragment_main);
//findViewById 根据id 找对象
Button bt_call=(Button) this.findViewById(R.id.bt_call);
//事件注册
bt_call.setOnClickListener(this);
}
@Override
public void onClick(View v) {
EditText et_number= (EditText) MainActivity.this.findViewById(R.id.et_phoneNumber);
String number=et_number.getText().toString();
//创建动作意向
Intent intent =new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//开启新的视图
startActivity(intent);
}
}
第四种
利用布局文件 基于反射的 绑定 事件
Activity 中:
package cn.stanley;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加 载视图配置
setContentView(R.layout.fragment_main);
//findViewById 根据id 找对象
Button bt_call=(Button) this.findViewById(R.id.bt_call);
}
public void bt_calOnClicked(View v) {
EditText et_number= (EditText) MainActivity.this.findViewById(R.id.et_phoneNumber);
String number=et_number.getText().toString();
//创建动作意向
Intent intent =new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
//开启新的视图
startActivity(intent);
}
}
布局文件:
<Button
android:id="@+id/bt_call"
android:onClick="bt_calOnClicked"
<!-- 事件绑定 ;bt_calOnClicked 要绑定的方法 -->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignRight="@+id/et_phoneNumber"
android:layout_below="@+id/et_phoneNumber"
android:layout_marginTop="42dp"
android:text="@string/call" />