按钮可见且不可见

时间:2017-11-21 13:41:25

标签: android

我是Android应用开发的新手。 我正在寻找像贝娄这样的例子:

有一个复选框和两个名为btn1btn2的按钮。 逻辑应该是当用户选中复选框时,btn2将显示,btn1将不可见。

在我的XML文件中:

<android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_provider"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.AppCompatCheckBox
                android:id="@+id/input_chk_provider"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:duplicateParentState="false"
                android:text="@string/user_type_provider" />
        </android.support.design.widget.TextInputLayout>

        <Button
            android:id="@+id/btn_signup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btn_sing_up"
            android:background="@color/ic_launcher_background"
            android:layout_marginTop="40dp"
            android:textColor="@android:color/white"/>

        <Button
            android:id="@+id/btn_provider"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btn_provider_dtl"
            android:background="@color/ic_launcher_background"
            android:layout_marginTop="40dp"
            android:textColor="@android:color/white"/>

4 个答案:

答案 0 :(得分:1)

没有代码...... 您需要OnCheckedChangeListener用于复选框,以便在选中/取消选中时可以调整按钮的可见性。 类似的东西:

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked) { 
                btn1.setVisibility(View.GONE); 
                btn2.setVisibility(View.VISIBLE);
            } else {
                btn1.setVisibility(View.VISIBLE); 
                btn2.setVisibility(View.GONE);
            }
    });

答案 1 :(得分:0)

Checkbox具有OnCheckedChangeListener()方法,该方法将为您提供复选框的状态。根据Checkbox的状态,您可以使用Button1.setVisibility(true / false);显示/隐藏按钮。

答案 2 :(得分:0)

在您的XML中使用android:visibility="invisible"来设置按钮的可见性。

在代码中,使用findViewById()

获取您的观看次数
CheckBox checkBox = (CheckBox) findViewById(R.id.check1);
Button yourButton = (Button) findViewById(R.id.btn1);

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton button, boolean isChecked) {
      if(isChecked){ 
         yourButton.setVisibility(View.VISIBLE);
      } else {
         yourButton.setVisibility(View.INVISIBLE);
      } 
   }

});

使用方法.setVisibility(View.VISIBLE)更改可见性。

有3种状态:

View.GONE
View.VISIBLE
View.INVISIBLE

答案 3 :(得分:0)

试试这个..

 <CheckBox
        android:id="@+id/input_chk_provider"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:state_checked="true"
        android:checked="false"
        android:onClick="itemClicked"
        android:duplicateParentState="false" />

    public void itemClicked(View v) {
            //code to check if this checkbox is checked!
            CheckBox checkBox = (CheckBox)v;
            if(checkBox.isChecked()==true){
                bt1.setVisibility(View.VISIBLE);
                bt2.setVisibility(View.INVISIBLE);
            }else if(checkBox.isChecked()==false){
                bt2.setVisibility(View.VISIBLE);
                bt1.setVisibility(View.INVISIBLE);
            }
        }