隐藏的禁用按钮和复选框

时间:2013-11-11 18:33:59

标签: android checkbox hidden

我需要一些小代码的帮助。 基本上我有一个按钮和一些生成的复选框(不知道有多少)。只要未选中复选框,就应隐藏和禁用该按钮。选中一个或多个复选框后,应显示并启用该按钮。 我怎么能这样做?

6 个答案:

答案 0 :(得分:1)

只需创建一个计数器变量

public class MyActivity extends Activity
{
    int counter = 0;

    //onCreate() and other code

然后在onCheckedChangedListener()上设置CheckBoxes,并根据是否选中此框来增加/减少值

onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
    if (isChecked)
    {
        counter++;
    }
    else
    {
        counter--;
    }
    /* if (counter > 0)
          change visibility
    */
}

显然你不能复制/粘贴这段代码,但应该给你一个很好的主意。

OnCheckedChangedListener

setVisibility()

答案 1 :(得分:1)

会是这样的吗?

公共类MainActivity扩展了Activity {

LinearLayout idLayoutThisXml;
Button btn;


public boolean verifyChecked(){
    idLayoutThisXml = (LinearLayout) findViewById(idCadastro.linearLayout);
    for (int i = 0; i < idLayoutThisXml.getChildCount(); i++) {
        View v = idLayoutThisXml.getChildAt(i);
        if(v instanceof CheckBox){
            if(((CheckBox)v).isChecked()){
                return true;
            }
        }
    }
    return false;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(idMain.button);
    if(verifyChecked()){
        btn.setVisibility(View.VISIBLE);
    }
    else{
        btn.setVisibility(View.INVISIBLE);
    }
}

}

答案 2 :(得分:1)

举个例子......

XML文件:

<CheckBox android:id="@+idMain/check1"
    android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<CheckBox android:id="@+idMain/check2"
    android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<CheckBox android:id="@+idMain/check3"
    android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<Button
    android:id="@+idMain/button"
    android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:visibility="invisible"/>

的活动:

公共类MainActivity扩展了Activity {

LinearLayout idLayoutThisXml;
Button btn;


public boolean verifyChecked(){
    idLayoutThisXml = (LinearLayout) findViewById(idMain.layout);
    for (int i = 0; i < idLayoutThisXml.getChildCount(); i++) {
        View v = idLayoutThisXml.getChildAt(i);
        if(v instanceof CheckBox){
            if(((CheckBox)v).isChecked()){
                return true;
            }
        }
    }
    return false;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(idMain.button);
    if(verifyChecked()){
        btn.setVisibility(View.VISIBLE);
    }
    else{
        btn.setVisibility(View.INVISIBLE);
    }
}

}

所以我有一个具有CheckBox类型子元素的布局,并且测试将是所有CheckBox llinearLayout,至少满足一个标记。按钮变得可见。

答案 3 :(得分:0)

myButton.setVisibility(View.INVISIBLE);

然后,在CheckBox的{​​{1}}中,OnClickListener

答案 4 :(得分:0)

将按钮可见性设置为不可见

<Button android:id="@+id/mybutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello" 
        android:visibility="invisible"/>

然后致电

Button btn = (Button)findViewById(R.id.thebuttonid);
btn.setVisibility(View.VISIBLE); //View.GONE, View.INVISIBLE are available too.

满足条件时。 http://developer.android.com/reference/android/view/View.html

Conditionally displaying button

答案 5 :(得分:0)

你在XML中有一个复选框吗?使用

处理活动中的checkBox
CheckBox c = (CheckBox) findViewById (idThisCheckBoxInXml)

if (c.isActivated ()) {
    botao.setVisibility (View.INVISIBLE) or botao.setVisibility (View.VISIBLE)
}

会是这样的吗?请原谅我糟糕的英语......

相关问题