浅学AS,设置Button点击事件的三种方式

1.在布局文件中指定onClick属性的方式设置点击事件

这里就是通过布局文件中Button控件的属性值onClick="click"实行回调函数click,代表着点击按钮有click方法响应。
在这里插入图片描述
回调函数代码如下,首先要通过id找到对应的按钮

myBtn_one.findViewById(R.id.btn_one);

要实现findViewById和后面的click函数得将btn设置成全局变量,同时因为是要实现按钮的点击,还需要一个强转类型具体代码如下:

public class MainActivity extends AppCompatActivity {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.btn);
        btn=(Button)findViewById(R.id.btn_one);
    }
    public void click(View view){
        btn.setText("按钮一已经被点击");
    }
}

全局变量与局部变量
全局变量也称为外部变量,它是在函数外部定义的变量。它不属于任何一个函数,它属于一个源程序文件。其作用域是整个源程序。

全局变量和局部变量相关内容:https://www.cnblogs.com/lzjdsg/p/10146480.html

2.匿名内部类的方法设置点击事件

public class MainActivity extends AppCompatActivity {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.btn);
        btn=(Button)findViewById(R.id.btn_one);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn.setText("按钮一已经被点击");
            }
        });
    }

因为我java也没有学好,还是个小白,为了还之前欠下的学债努力学习,后面我会更加完善java里面的各部分知识做成博客。这里主要提供代码。

Activity实现OnClickListener接口的方式设置点击事件

        btn = (Button) findViewById(R.id.btn_one);
        btn.setOnClickListener(this);

和上面一样通过ID找到该按钮,this代表当前这个Activity,但是setOnClickListener这个方法要接收一个onClick这个接口类型,所以可以通过Activity这个类来实现onClick这个接口类型

public class MainActivity extends AppCompatActivity implements View.OnClickListener

然后就会调用onClick这个方法,当点击后就会输出“按钮一已被点击的信息”

    public void onClick(View v) {
        btn.setText("按钮一已被点击");
    }

具体完整代码如下:

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.btn);
        btn = (Button) findViewById(R.id.btn_one);
        btn.setOnClickListener(this);
}

    @Override
    public void onClick(View v) {
        btn.setText("按钮一已被点击");
    }
}

总结

这里主要是浅谈了一下为Button控件设置点击事件的三种方式,分别是:
1.通过布局文件中onClick属性click回调函数click实现点击,这是Android特有的新方法。
2.使用匿名内部类的方法设置点击事件。
3.Activity实现OnClickListener接口的方式设置点击事件,也就是将当前Activity实现View.OnClickListener接口。

有了上面自己列举这几个简单的代码来举例,书上的代码也就只是把一个按钮变成了三个按钮,也就挺容易理解的了。

书上代码如下:

package com.example.button;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;



public class MainActivity extends AppCompatActivity implements  View.OnClickListener{

    Button btn_one,btn_two,btn_three;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.button);
        btn_one=(Button)findViewById(R.id.btn_one);
        btn_two=(Button)findViewById(R.id.btn_two);
        btn_three=(Button)findViewById(R.id.btn_three);
        btn_three.setOnClickListener(this);

        btn_one.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn_one.setText("按钮一已经被点击");
            }
        });
    }

    public void click(View view){

        btn_two.setText("按钮二已经被点击");
    }

    public void onClick(View v){
        switch (v.getId()){
            case R.id.btn_three:
                btn_three.setText("按钮三已经被点击");
                break;
        }
    }
}

第一个按钮就是用的第二种方法,第二个按钮就是用的第一种方法,第三个按钮就是用的第三种方法。

第三个按钮onClick函数中还使用了switch语句,来判断是哪个按钮被点击,其实,可以直接用这种switch语句写三个按钮的点击事件。代码如下:

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;



public class MainActivity extends AppCompatActivity implements  View.OnClickListener{

    Button btn_one,btn_two,btn_three;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.button);
        btn_one=(Button)findViewById(R.id.btn_one);
        btn_two=(Button)findViewById(R.id.btn_two);
        btn_three=(Button)findViewById(R.id.btn_three);
        btn_one.setOnClickListener(this);
        btn_two.setOnClickListener(this);
        btn_three.setOnClickListener(this);

        }

    //具体判断一下点击的是哪个按钮
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_one:
                btn_one.setText("按钮一已经被点击");
                break;
            case R.id.btn_two:
                btn_two.setText("按钮二已经被点击");
                break;
            case R.id.btn_three:
                btn_three.setText("按钮一已经被点击");
                break;
        }
     }
}
  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、XML AJAX: Asynchronous Javascript And Xml 1、什么是XML eXtensible Markup Language 可扩展的 标记 语言 XML的标记没有预定义过,需要自行定义 XML的宗旨是做数据传递的,而非数据显示 2、XML的语法规范 XML可以保存成独立的 ***.xml 的文件,也可以以字符串的形式出现(服务器端生产) 1、XML的最顶端是XML的声明 <?xml version="1.0" encoding="utf-8" ?> 2、XML标记的语法 1、XML标记必须成对出现 2、xml标记是严格区分大小写,开始和结束必须一致 3、XML的标记也允许被嵌套,注意嵌套顺序 4、每个标记都允许自定义属性,格式与HTML一致,但属性值,必须用""括起来 5、每个XML文档中必须要有一个跟元素 3、使用AJAX 请求 XML 文档 1、要遵循AJAX的请求步骤 1、创建/获取 xhr 2、创建请求 xhr.open("get","***.xml",true); 3、设置回调函数 xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr;.status==200){ } } 4、发送请求 xhr.send(); 2、在回调函数中,处理响应数据 使用 xhr.responseXML 来获取响应数据,返回的是XML文档对象 4、解析XML文档对象的内容 1、核心方法 elem.getElementsByTagName("标签的名字"); elem:表示的是获取范围的对象 返回值:返回一个包含指定元素们的类数组 5、在php中返回xml格式的字符串 1、必须增加响应消息头 header("Content-Tupe:application/xml"); 2、按照xml的语法结构,拼xml字符串,再响应给客户端 $xml="<?xml version='1.0' encoding='utf-8'?>"; $xml.="<...>"; ....
在静态方法中使用JdbcTemplate需要注意以下几点: 1. 静态方法中无法直接使用Spring容器中的Bean,因为静态方法是类级别的,而Bean是实例级别的。因此需要手动获取JdbcTemplate实例,可以通过ApplicationContext获取JdbcTemplate实例,或者通过静态变量保存JdbcTemplate实例。 2. 在使用JdbcTemplate时,需要先创建一个JdbcTemplate实例,并设置数据源。数据源可以通过Spring容器注入,或者手动创建。在静态方法中,可以通过静态变量保存JdbcTemplate实例,避免重复创建。 3. 在使用JdbcTemplate操作数据库时,需要注意线程安全问题。JdbcTemplate是线程安全的,但是需要保证JdbcTemplate实例的线程安全,即在多线程环境中需要保证同一JdbcTemplate实例不会被并发访问。 下面是一个示例代码: ``` public class JdbcUtils { private static JdbcTemplate jdbcTemplate; public static void setDataSource(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); } public static void executeSql(String sql) { jdbcTemplate.execute(sql); } } ``` 在上面的代码中,我们通过静态变量保存了JdbcTemplate实例,并提供了一个静态方法setDataSource用于设置数据源。在使用JdbcTemplate时,我们可以直接调用静态方法executeSql执行SQL语句。需要注意的是,这里的executeSql方法是线程安全的,因为JdbcTemplate实例是共享的,并且JdbcTemplate本身是线程安全的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值