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

Android -- Button(按钮)的几种监听方式

2016-11-30 20:21 369 查看
之前写了一篇关于TextView的文章,今天说的是Button(按钮),Button是程序用于和用户进行交互的重要控件,它的属性有些和TextView类似

一、Button属性如下:

android:background     设置按钮的背景,可以使用RGB的值来表示,也可以放一张图片

android:focusable         设置按钮是否有焦点,在ListView中按钮会抢占焦点,设置该属性可以去掉焦点让Item具有可点击事件

二、ImageButton控件

ImageButton是设置了图片的Button

三、Button的监听方式

1)  使用匿名内部类,一个控件对应一个监听事件,当控件较少时使用比较好

button1 = (Button) findViewById(R.id.button1);
// 方法一
button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "按钮1被点击了", Toast.LENGTH_SHORT).show();

}
});

2)  使用实现接口的方式,多个控件对应一个监听事件,该方法适用于Button较多的时候使用
public class MainActivity extends Activity implements OnClickListener {

private Button button2;
private Button button3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

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

// 方法二
button2.setOnClickListener(this);
button3.setOnClickListener(this);

}

@Override
public void onClick(View v) {

switch (v.getId()) {
case R.id.button2:
Toast.makeText(MainActivity.this, "按钮2被点击了", Toast.LENGTH_SHORT)
.show();
break;

case R.id.button3:
Toast.makeText(MainActivity.this, "按钮3被点击了", Toast.LENGTH_SHORT)
.show();
break;
}

}

3)  在XML文件中给Button加上onClick属性,然后在.java文件中写一个以onClick属性的值为方法名的一个方法,该方法一般用来做测试的时候使用较多,建议尽量不适用这种方法
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="按钮监听方式三" />
public void onClick(View view) {

Toast.makeText(MainActivity.this, "按钮4被点击了", Toast.LENGTH_SHORT).show();
}


4)  多个按钮对应一个监听事件二
private Button button1
4000
;
private Button button2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(listener);
button2.setOnClickListener(listener);

}

// 方法四
View.OnClickListener listener = new View.OnClickListener() {

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Toast.makeText(MainActivity.this, "按钮1被点击了", Toast.LENGTH_SHORT)
.show();
break;
case R.id.button2:
Toast.makeText(MainActivity.this, "按钮2被点击了", Toast.LENGTH_SHORT)
.show();
break;

}
}
};


总结: 对于按钮的点击监听事件,常用的是第一种和第二种方式,第三种方式一般用于测试,不推荐使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: