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

强强笔记之安卓几种button点击事件

2017-01-11 12:57 417 查看
button点击事件应该是android最为基础的东西,因为几乎每个程序都要用到按钮,而按钮按钮,顾名思义就是要被点击嘛。。记得在刚学android的时候看到其他人的代码,发现他们对于点击事件都有自己的喜好的写法,因此本文总结了几种常用的响应方法。

首先真机演示图示为



以下每种方法效果都如图所示

匿名内部类法:

xml代码:

<Button

android:text="Button点击事件测试"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/btn" />


java代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn= (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"被点击啦",Toast.LENGTH_SHORT).show();
}
});
}
}


自定义监听类:

public class MainActivity extends Activity implements View.OnClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn= (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn:Toast.makeText(MainActivity.this,"被点击啦",Toast.LENGTH_SHORT).show();
}
}
}


这种写法一般是在有多个button要点击,学过c语言或者java都知道switch的基本用法,在这里就不多说了,相信大家都能看得懂。需要强调的几点是:一定要继承
View.OnClickListener
这个接口,我们可以看下这个接口的源码:

public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}


可以看到里面只有一个抽象方法,根据接口的定义,我们要实现这个方法,否则会报错。

第二点就是我们要声明可点击事件,即
btn.setOnClickListener(this);
这行代码,点进去看源码可知这是设置按钮为可点击的,在看完所有点击事件的写法可以发现,设置按钮为可点击的是一个必需步骤,所以在以后写的时候就要注意了。

最后一种写法是本人最喜欢的

首先看下xml代码:

<Button

android:text="Button点击事件测试"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/btn"

android:onClick="touchMe"

/>


可以发现多了
android:onClick="touchMe"
这一行代码,也就是直接在xml文件中声明按钮可点击

我们在看下java代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void touchMe(View view){
Toast.makeText(MainActivity.this,"被点击啦",Toast.LENGTH_SHORT).show();
}
}


可以发现之前那段声明代码在MainActivity中不见了,这也对应了上面的xml文件。

如果有同学发现更多的写法,欢迎来联系我
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml android