您的位置:首页 > 移动开发 > Android开发

Android的Button控件的点击事件的四种写法

2015-08-05 10:46 543 查看

方法一:内部类方法

程序功能:



代码:

public class MainActivity extends Activity {

//activity被开启调用

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//根据ID需找到关心的Button控件

Button bt_01 = (Button)findViewById(R.id.bt_01);

Button bt_02 = (Button)findViewById(R.id.bt_02);

Button bt_03 = (Button)findViewById(R.id.bt_03);

//设置按钮的点击事件

bt_01.setOnClickListener(new btClickListener1());

bt_02.setOnClickListener(new btClickListener2());

bt_03.setOnClickListener(new btClickListener3());

}

public class btClickListener1 implements OnClickListener{

@Override
public void onClick(View v) {
//当用户点击按钮会显示如下信息
Toast.makeText(MainActivity.this, "点击按钮1", Toast.LENGTH_SHORT).show();
}


}

public class btClickListener2 implements OnClickListener{

@Override
public void onClick(View v) {
//当用户点击按钮会显示如下信息
Toast.makeText(MainActivity.this, "点击按钮2", Toast.LENGTH_SHORT).show();
}


}

public class btClickListener3 implements OnClickListener{

@Override
public void onClick(View v) {
//当用户点击按钮会显示如下信息
Toast.makeText(MainActivity.this, "点击按钮3", Toast.LENGTH_SHORT).show();
}


}

}

方法说明:这个方法需要为每一个按钮来定义一个内部类来实现OnClickListener这个接口的onClick(View v)方法。

应用场景:按钮比较少的时候,一个或者两个的时候,用还不错,但是多了,像计算器,那样就不适用了。

方法二:通过Activity来实现OnClickListener这个接口的onClick(View v)方法。

代码:

public class MainActivity extends Activity implements OnClickListener{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button bt_01 = (Button)findViewById(R.id.bt_01);
Button bt_02 = (Button)findViewById(R.id.bt_02);
Button bt_03 = (Button)findViewById(R.id.bt_03);

bt_01.setOnClickListener(this);
bt_02.setOnClickListener(this);
bt_03.setOnClickListener(this);


}

@Override

public void onClick(View v) {

switch (v.getId()) {
case R.id.bt_01:
Toast.makeText(this, "点击按钮1", Toast.LENGTH_SHORT).show();
break;
case R.id.bt_02:
Toast.makeText(this, "点击按钮2", Toast.LENGTH_SHORT).show();
break;
case R.id.bt_03:
Toast.makeText(this, "点击按钮3", Toast.LENGTH_SHORT).show();
break;
default:
break;
}


}

}

方法说明:这个方法通过Activity来实现OnClickListener这个接口的onClick(View v)方法,在设置按钮的点击事件,通过bt_01.setOnClickListener(this)这样的代码来设置,this代表MainActivity,onClick(View v)这个里面的参数View v,哪个按钮被点击,传来的参数就是哪个按钮,因为控件都是继承的View。

应用场景:按钮比较多的时候,比较适用。

方法三:通过匿名内部类的方法实现。

代码:

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button bt = (Button)findViewById(R.id.bt);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "不要酱紫吗", Toast.LENGTH_SHORT).show();
}
});


}

}

方法说明:这个方法没什么可说的了,只要知道匿名内部类的都可以懂的。

应用场景:适用于按钮比较少的场景,很方便。

方法四:在布局的xml文件中绑定点击事件

代码:

布局文件中:

由于一直加布局文件不显示,所以就不加了,就说明一下,在Button的配置中添加:android:onClick=”onClick”这个属性。

Activity中对onClick方法的实现:

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void onClick(View v){

Toast.makeText(MainActivity.this, “哈哈”, Toast.LENGTH_SHORT).show();

}

}

方法说明:这个方法直接在布局文件中通过android:onClick=”onClick”对按钮设置点击的属性,当按钮被点击时,调用名为onClick的方法,这个方法在Activity中实现。

适用场景:在写一些示例代码的时候比较方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 控件