0

小さなコードで助けが必要です。基本的に、ボタンといくつかの生成されたチェックボックスがあります(いくつかわからない)。チェックボックスがチェックされていない限り、ボタンは非表示にして無効にする必要があります。1 つ以上のチェックボックスがオンになっている場合、ボタンが表示されて有効になります。これどうやってするの?

4

6 に答える 6

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"/>

アクティビティ:

public class MainActivity extends 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 で、少なくとも 1 つのマークを満たします。ボタンが表示されます。

于 2013-11-11T19:15:34.963 に答える
1

このようなものでしょうか?

public class MainActivity extends 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);
    }
}

}

于 2013-11-11T19:09:13.740 に答える
0

XMLにチェックボックスがありますか?アクティビティでcheckBoxを処理する

CheckBox c = (CheckBox) findViewById (idThisCheckBoxInXml)

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

このようなものでしょうか?私の悪い英語を許してください...

于 2013-11-11T18:46:48.230 に答える
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

条件付き表示ボタン

于 2013-11-11T18:44:37.780 に答える
0

myButton.setVisibility(View.INVISIBLE);

そして、CheckBoxOnClickListenermyButton.setVisibility(View.VISIBLE);

于 2013-11-11T18:36:59.463 に答える