android如何给按钮添加监听,Android学习笔记——给Button添加监听器(四)
发布日期:2021-08-20 01:25:52 浏览次数:4 分类:技术文章

本文共 4353 字,大约阅读时间需要 14 分钟。

方式1:创建成员内部类

//1:创建内部类

class ButtonListener implements OnCickListener{

//重写OnClick方法

@Override

public void onClick(View v){

// 该方法将在绑定的按钮被点击时调用,v对象为绑定的控件

// 吐司使用方法:1,当前界面对象(上下文环境),2,显示内容,3、吐司显示时长

Toast.makeText(MainActivity.this, "按钮被点击啦!!", Toast.LENGTH_SHORT).show();

}

}

/*

* 为按钮添加监听器 第一步:XML布局文件中添加控件并为其设置id

* 第二步:在java代码中(需要显示该控件的Activity中), 通过setContentView,装载Button所在的XML布局。

* 第三步:通过Button的id在Activity中获取到Button的对象

* 第四步:为button按钮添加监听事件

* a:创建内部类并实现OnClickListener接口

* b:重写onClick方法(当按钮被点击后想干什么)

* c:生成内部类对象

* d:为按钮添加监听器

*/

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 第二步

setContentView(R.layout.activity_linearlayout);

// 第三步

button01 = (Button) findViewById(R.id.btn01);

//生成监听器(内部类)类的对象

MyButtonListener myButtonListener=new MyButtonListener();

//第四步 为按钮添加监听器

button01.setOnClickListener(myButtonListener);

}

方式2:创建匿名内部类

/*

* 第一步:获取Button对象

* 第二步:直接调用button的setOnClickListener方法

* a,在方法中,传入new OnClickListener(){

* onClick(){

* }

* }

* 匿名内部类以及内部类形式,这两种方式在开发中最常用。

*/

private Button btn;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_linearlayout);

btn = (Button) findViewById(R.id.btn01);

btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 当按钮点击时调用

Toast.makeText(SecondActivity.this, "按钮已被点击(匿名内部类)",

Toast.LENGTH_LONG).show();

}

});

}

方式3:Activity直接实现监听接口

public class ThirdActivity extends Activity implements OnClickListener {

/*

* 第一步:获取到Button按钮对象

* 第二步 : 直接使Activity实现OnClickListener接口

* 第三步:重写onClick方法

* 第四步:为按钮添加监听器(传入this)

*/

private Button btn;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_linearlayout);

btn = (Button) findViewById(R.id.btn01);

btn.setOnClickListener(this);

}

@Override

public void onClick(View v) {

// 当按钮被点击时调用

Toast.makeText(ThirdActivity.this, "按钮已被点击(Activity直接实现接口)",

Toast.LENGTH_LONG).show();

}

}

方式4:通过XML布局文件定义onClick属性

/*

* 第一步:xml布局文件中,为button添加onclick属性

* 第二步:在对应的Activity中,创建一个以onclick属性值为名字的方法

* a:修饰符为public

* b:返回值为void

* c:传入参数为View类型

*/

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_linearlayout);

}

public void MyButtonClick(View v) {

// 将在btn01按钮被点击时调用

Toast.makeText(FourthActivity.this, "按钮已被点击(xml布局文件中定义)", Toast.LENGTH_LONG)

.show();

}

activity_linearlayout.xml文件:

android:id="@+id/btn01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@color/blue"

android:onClick="MyButtonClick"

android:text="按钮1"

android:textColor="@color/cyan"

android:layout_marginBottom="5dp"/>

附加:多按钮使用用一个监听器

public class SixthActivity extends Activity {

// 通过创建内部类为多个按钮添加监听器

/*

* 创建内部类实现OnClickListener接口

* onClick方法中,通过switch(R.id.xxx)方式区别当前被点击的按钮是哪个

* 之后再对相应的按钮做不同的处理

*/

private Button btn01, btn02;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_linearlayout);

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

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

ButtonsListener btnButtonsListener = new ButtonsListener();

btn01.setOnClickListener(btnButtonsListener);

btn02.setOnClickListener(btnButtonsListener);

}

class ButtonsListener implements OnClickListener {

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn01:

Toast.makeText(SixthActivity.this, "已点击第一个按钮",

Toast.LENGTH_LONG).show();

break;

case R.id.btn02:

Toast.makeText(SixthActivity.this, "已点击第二个按钮",

Toast.LENGTH_LONG).show();

break;

}

}

}

}

activity_linearlayout.xml文件:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/btn01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@color/blue"

android:onClick="MyButtonClick"

android:text="按钮1"

android:textColor="@color/cyan"

android:layout_marginBottom="5dp"/>

android:id="@+id/btn02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@color/blue"

android:text="按钮2"

android:textColor="@color/cyan" />

转载地址:https://blog.csdn.net/weixin_32141627/article/details/117477833 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android桌面自定义图标数量,Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除...
下一篇:将汇编语言转化c语言,如何把汇编语言转换成C语言

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月08日 16时39分20秒