zoukankan      html  css  js  c++  java
  • 2.05Button(按扭)_UI组件_Android

    TOC

    Button(按扭)_UI组件_Android

    参考:

    • Button 控件继承 TextView ,拥有 TextView 的属性

    定义案例:

    btn_bg1.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@color/color1" android:state_pressed="true"/>//按扭被按下的状态
        <item android:drawable="@color/color4" android:state_enabled="false"/>//按扭禁用颜色
        <item android:drawable="@color/color3" />
    </selector>

    layout_btn.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingTop="50dp">
        <Button
            android:id="@+id/btnOne"
            android:layout_width="match_parent"
            android:layout_height="64dp"
            android:background="@drawable/btn_bg1" //引入StateListDrawable
            android:text="按钮"
            android:textColor="#ffffff"
            android:textSize="20sp"
            android:textStyle="bold" />
        <Button
            android:id="@+id/btnTwo"
            android:layout_width="match_parent"
            android:layout_height="64dp"
            android:text="按钮不可用"
            android:textColor="#000000"
            android:textSize="20sp"
            android:textStyle="bold" />
    </LinearLayout>
    

    MainActivity.java

    public class MainActivity extends Activity {
        private Button btnOne,btnTwo;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btnOne = (Button) findViewById(R.id.btnOne);
            btnTwo = (Button) findViewById(R.id.btnTwo);
            btnTwo.setOnClickListener(new OnClickListener() { //按钮绑定点击事件
                @Override
                public void onClick(View v) {
                    if(btnTwo.getText().toString().equals("按钮不可用")){
                        btnOne.setEnabled(false);
                        btnTwo.setText("按钮可用");
                    }else{
                        btnOne.setEnabled(true);
                        btnTwo.setText("按钮不可用");
                    }
                }
            });
        }
    }
    

    Button的三种点击事件

    当布局控件的Button设置好id,并设置好点击事件android:onClick="onClick"

    第一种,也是最简单的,只需要设置好点击事件即可

    public void onClick(View view){}

    是不是很简单,如果有多个Button的时候可以这样写

    public void onClick(View view){
        switch(view.getId()){
          case R.id.button1:
              break;
          case R.id.button2:
              break;
      }
    }
    

    第二种

    findViewById(R.id.btn_click_one).setOnClickListener(new onClickListener(){
        public void onClick(View view){}
    });
    

    第三种就是第二种的演变

    findViewById(R.id.btn_click_one).setOnClickListener( listener)
    Button.OnClickListener listener = new Button.OnClickListener(){//创建监听对象
            public void onClick(View v){
                String strTmp="点击Button02";
                Ev1.setText(strTmp);
            }
    

    匿名内部类的第二种响应速度快一些,
    按钮多的时候建议用第一种,方便,当然有时候第一种情况也不能用,比如重写View的时候,onclick的view就会冲突

  • 相关阅读:
    mybatis-plus 插件
    mybatis-plus 逆向工程模板
    mybatis-plus 使用
    response.getWriter()
    String.length()和String.getBytes().length
    mybatis 中有趣的符号#与$
    html动画实现
    把我坑惨的一个update语句
    我们为什么不用 Select * 吗?
    Java 正则表达式
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/b18379d1b7c954319d5df9cb93db9856.html
Copyright © 2011-2022 走看看