我是Android应用开发的新手。 我正在寻找像贝娄这样的例子:
有一个复选框和两个名为btn1
和btn2
的按钮。
逻辑应该是当用户选中复选框时,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"/>
答案 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);
}
}