请选择 进入手机版 | 继续访问电脑版

牛大大的个人博客

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2814|回复: 2

Button Click 几种方式

[复制链接]

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
发表于 2020-4-26 14:36:17 | 显示全部楼层 |阅读模式
本帖最后由 牛大舅 于 2020-4-26 14:37 编辑

Button Click 几种方式

        
  1. mBtnShow = (Button) findViewById(R.id.btn_show);
  2.         mBtnShow.setOnClickListener(new mBtnShowClick());     
复制代码


第二种

  1. button1.setOnClickListener(this);
  2.         button2.setOnClickListener(this);
  3.     }



  4.     @Override
  5.     public void onClick(View view) {
  6.         switch (view.getId()) {
  7.            case R.id.button1:
  8.                 onClickButton1(view);
  9.                 break;
  10.             case R.id.button2:
  11.                 onClickButton2(view);
  12.                 break;
  13.             default:
  14.                 break;
  15.         }
  16.     }
复制代码



第三种

  1. register_btn.setOnClickListener(new View.OnClickListener() {
  2.     @Override
  3.     public void onClick(View view) {
  4.         if(TextUtils.isEmpty(userName_et.getText().toString()) || TextUtils.isEmpty(pwd_et.getText().toString())) {
  5.             Toast.makeText(RegisterActivity.this, "用户名密码不能为空", Toast.LENGTH_LONG).show();
  6.             return;
  7.         }
  8.         //注册
  9.     }

  10. });
复制代码



第四种

方式三:自定义一个监听器,实现View.OnClickListener接口,这与方式一类似,方式一直接在Activity中实现View.OnClickListener接口,因此它本身就是一个监听器。这里要另外实现一个监听器类。
class MyListener implements View.OnClickListener{

    @Override
    public void onClick(View view) {
        //处理逻辑
    }
}

最后别忘了在Activity中注册自定义的监听器register_btn.setOnClickListener(new MyListener());


.

方式四:在XMl布局文件中的OnClick属性直接注册Activity中的处理方法,Activity中的点击事件处理方法需要时public方法,底层会通过反射方式调用。这种方法不好维护,通常不好找按钮对应点击事件处理方法,不建议使用
XML布局文件:
  1. <ImageButton
  2.     android:layout_marginTop="50dp"
  3.     android:layout_height="49dp"
  4.     android:layout_width="55dp"
  5.     android:layout_gravity="center"
  6.     android:on\="activate"
  7.     />

复制代码



回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-6-7 22:53:31 | 显示全部楼层
本帖最后由 牛大舅 于 2020-6-7 22:56 编辑

总结第一种
  1. Button btnsetdevelopment = (Button)findViewById(R.id.btn_set_development);
  2.        btnsetdevelopment.setOnClickListener(new View.OnClickListener() {
  3.                
  4.                 @Override
  5.                 public void onClick(View v) {
  6.                         // TODO Auto-generated method stub
  7.                         Intent intent =  new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS);
  8.                         startActivity(intent);
  9.                 }
  10.        });
复制代码
第二种   
        btnfhzw_jyw.setOnClickListener(new mBtnshowClick());
        btnfhzw_ycyd.setOnClickListener(new mBtnshowClick());
        btnfhzw_njyd.setOnClickListener(new mBtnshowClick());
        btnfhzw_byxl.setOnClickListener(new mBtnshowClick());     


public class mBtnshowClick implements OnClickListener{

                @Override
                public void onClick(View v) {
                        // TODO Auto-generated method stub
                       
                  switch(v.getId()){
                  case R.id.btn_fhzw_jyw:
                        break;
                  
                  case R.id.btn_fhzw_ycyd:
                        break;      
                        
                  case R.id.btn_fhzw_njyd:
                        break;      
                        
                  case R.id.btn_fhzw_byxl:
                        break;        
                  }                       
                }           
    }
回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-6-7 23:05:16 | 显示全部楼层
  1. tv_1[i].setOnFocusChangeListener(new OnFocuslistener());        
复制代码

        public class OnFocuslistener implements OnFocusChangeListener{

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                        // TODO Auto-generated method stub
                        int paramInt = 0;
                        switch (v.getId()) {
                        case R.id.ui_iv_1_0:
                                paramInt = 0;
                                break;
                               
                        case R.id.ui_iv_1_1:
                                paramInt = 1;
                                break;       
                        }
                       
                        if (hasFocus) {
                                showOnFocusAnimation(paramInt);
                               
                                flyAnimation(paramInt);
                                // 白框动画
                        } else {
                                showLoseFocusAinimation(paramInt);
                                // 将白框隐藏
                        }
                }
               
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|牛大大的个人博客 ( 苏ICP备17043571号-2 )

GMT+8, 2021-6-15 12:28 , Processed in 0.189292 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表