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

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

2016-12-27 17:46 441 查看
工具:Android Studio 2.2.2

水平:新手

新建一个名为ButtonClick工程。

布局很简单,设置一个id为button的Button即可。

<Button
android:id="@+id/button"
android:text="@string/btn_clickme"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />


1.匿名内部类

public class MainActivity extends AppCompatActivity {

private Button button;

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

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

//第一种方法-匿名内部类
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
Toast.makeText(MainActivity.this,"第一种方式",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
});

}

}


2.自定义监听类

//第二种方法-自定义点击事件监听类
class MyButtonClickLinstener implements View.OnClickListener{
@Override
public void onClick(View v){
switch (v.getId()) {
case R.id.button:
Toast.makeText(MainActivity.this, "第二种方式", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}


调用的时候直接new。

button.setOnClickListener(new MyButtonClickLinstener());

3.Activity继承View.OnClickListener

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

}

绑定的时候,直接使用this

button.setOnClickListener(this);

写个onClick方法,不用加@Override

public void onClick(View v){
switch (v.getId()){
case R.id.button:
Toast.makeText(MainActivity.this,"第三种方式",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}


4.使用android:onClick的属性

**在布局文件中修改Button的onClick属性为onClick。**

android:onClick=”onClick”

不需要setOnClickListener方法了。直接使用第三种方法的onClick方法即可。

android:onClick绑定的是一个方法,方法名可以自定义,如testClick,然后在ManiActivity里写testClick方法。

public void testClick(View v){
switch (v.getId()){
case R.id.button:
Toast.makeText(MainActivity.this,"我也是第四种方式",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}


小结:

当按钮较少时,可以使用第一种和第二种写法。

当按钮较多时,可以使用第三种,方便。

第四种很灵活。

5.参考资料:

[1].http://www.jb51.net/article/55329.htm

[2].http://blog.csdn.net/a9529lty/article/details/7542828/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android