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就会冲突

posted @ 2021-02-24 22:11  紫月java  阅读(85)  评论(0编辑  收藏  举报