重点核心☆☆☆☆☆按钮点击事件的四种类型

基本内容:

1.内部类

2.匿名内部类

3.让当前类实现OnClickListener接口类型

4.可以是用attribute(属性)来代替OnClickListener



1.调用的方法:

重点核心☆☆☆☆☆按钮点击事件的四种类型_第1张图片

2.布局文件代码activity_main.xml:


xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="com.example.tellcall.MainActivity">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/TextView1"/>

android:id="@+id/editText1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:ems="10"

android:phoneNumber="true"

/>

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button1"/>

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button2"/>

android:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button3"/>

android:onClick="onclickfour"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button3"/>


3.strings.xml


重点核心☆☆☆☆☆按钮点击事件的四种类型_第2张图片

一、内部类应用:

      在类里面在写一个类来实现这个方法或接口


packagecom.example.tellcall_two;

importandroid.support.v7.app.ActionBarActivity;

importandroid.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

public class MainActivity extends ActionBarActivity {

private Buttonbt_cll;

private EditTextet_number;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_number= (EditText )findViewById(R.id.editText1);

bt_cll= (Button)findViewById(R.id.button1);

bt_cll.setOnClickListener(new MyCilkListener());

}

public class MyCilkListener implements OnClickListener{

@Override

public void onClick(View v) {

OnclicMeth();//调用方法

}

private void OnclicMeth() {

String number =et_number.getText().toString().trim();

if(" ".equals(number)){

Toast.makeText(MainActivity.this,"输入的电话号码为空",

Toast.LENGTH_LONG).show();

return;

}

Intent intent = newIntent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

startActivity(intent);

}

}



二、匿名内部类:

不声明类名字,直接重写为实现的方法与类


packagecom.example.tellcall_two;

importandroid.support.v7.app.ActionBarActivity;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.Toast;

importandroid.content.Intent;

importandroid.net.Uri;

importandroid.os.Bundle;

public class MainActivity extends ActionBarActivity {

privateButtonbt_cll;

privateButtonbt_cll2;

privateButtonbt_cll3;

privateEditTextet_number;

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_number= (EditText )findViewById(R.id.editText1);

bt_cll= (Button)findViewById(R.id.button1);

bt_cll.setOnClickListener(newOnClickListener() {

@Override

public void onClick(View arg0) {

OnclicMeth();

}

});

}

private void OnclicMeth() {

String number = et_number.getText().toString().trim();

if(" ".equals(number)){

Toast.makeText(MainActivity.this,"输入的电话号码为空",

Toast.LENGTH_LONG).show();

return;

}

Intent intent= new Intent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

startActivity(intent);

}

}




使用最方便

packagecom.example.tellcall_two;

importandroid.support.v7.app.ActionBarActivity;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.Toast;

importandroid.content.Intent;

importandroid.net.Uri;

importandroid.os.Bundle;

public class MainActivity extends ActionBarActivity implements OnClickListener{

privateButtonbt_cll;

privateButtonbt_cll2;

privateButtonbt_cll3;

privateEditTextet_number;

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_number= (EditText )findViewById(R.id.editText1);

bt_cll= (Button)findViewById(R.id.button1);

bt_cll2= (Button)findViewById(R.id.button2);

bt_cll3= (Button)findViewById(R.id.button3);

*按钮点击事件类型三

*让当前类实现OnClickListener接口类型

*使用特点:在实现多个按钮事件的时候使用最方便

*方法A:

*可以使用此类方法来实现button的点击事件

*bt_cll.setOnClickListener(this);//指定使用父类的方法

*bt_cll2.setOnClickListener(this);

*bt_cll3.setOnClickListener(this);

*/

}

privatevoidOnclicMeth() {

String number =et_number.getText().toString().trim();

if(" ".equals(number)){

Toast.makeText(MainActivity.this,"输入的电话号码为空",

Toast.LENGTH_LONG).show();

return;

}

Intent intent =newIntent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

startActivity(intent);

}

@Override

publicvoidonClick(View V) {

/*

*方法B:

*可以使用此类方法来实现button的点击事件

*具体判断点击的是哪个按钮,然后执行

*/

switch(V.getId()) {

caseR.id.button1:

OnclicMeth();

break;

caseR.id.button2:

OnclicMeth();

break;

caseR.id.button3:

OnclicMeth();

break;

default:

break;

}

}

}

四、用attribute(属性)来代替OnClickListener

  在Button按钮中中设置一个 android:onClick="onclickfour",属性名称:onclickfour

  注意事项:

  A,  属性名与方法名必须相同

  B,  方法中必须传递一个View参数

什么时候使用最好:适合自己做一些Demo的时使用


packagecom.example.tellcall_two;

importandroid.support.v7.app.ActionBarActivity;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.Toast;

importandroid.content.Intent;

importandroid.net.Uri;

importandroid.os.Bundle;

public  class  MainActivity  extends  ActionBarActivity{

private Buttonbt_cll;

private Buttonbt_cll2;

private Buttonbt_cll3;

private EditTextet_number;

@Override

protected  voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_number= (EditText )findViewById(R.id.editText1);

bt_cll= (Button)findViewById(R.id.button1);

bt_cll2= (Button)findViewById(R.id.button2);

bt_cll3= (Button)findViewById(R.id.button3);

}

public voidonclickfour(View v2){

OnclicMeth();

}

private voidOnclicMeth() {

String number =et_number.getText().toString().trim();

if(" ".equals(number)){

Toast.makeText(MainActivity.this,"输入的电话号码为空",

Toast.LENGTH_LONG).show();

return;

}

Intent intent  = newIntent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse("tel:"+number));

startActivity(intent);

}

}



源代码:链接:http://pan.baidu.com/s/1mikm4xa 密码:437l

你可能感兴趣的:(重点核心☆☆☆☆☆按钮点击事件的四种类型)