2

複数のチェックボックスとボタンがあります。チェックボックスがチェックされていない場合はボタンを無効にし、チェックされている場合はボタンを有効にするにはどうすればよいですか?

4

7 に答える 7

8

これで試してみてください、

 Button mButton=(Button)findViewById( R.id.button01);
    CheckBox mCheckBox= ( CheckBox ) findViewById( R.id.checkbox01);
    mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            if ( isChecked )
            {
              mButton.setEnabled(true);

            }else{
  mButton.setEnabled(false);
}

        }
    });
于 2012-07-30T09:56:16.030 に答える
2

そのビューに入るときは(XMLで)ボタンを無効にし、ユーザーがチェックボックスのいずれかを押すたびに1つのグローバル変数を管理します。たとえば、グローバルカウントが1より大きい場合は、そのアクティビティでボタンを有効にします。

ユーザーがチェックボックスをオンにしている場合はそれをインクリメントし、チェックボックスをオフにしている場合はカウンターを減らすようにグローバル変数を管理します。

コンセプトを理解していただければ幸いです。

基本的には、オンになっているチェックボックスの数を管理することがすべてです。1つ以上オンになっている場合はボタンを有効にし、そうでない場合は無効にします。

于 2012-07-30T09:56:09.773 に答える
2

ボタンを有効または無効にする代わりに、ボタンにsetVisibility()メソッドを使用できます。次のように。

Button btn =(Button)findViewById( R.id.mybutton);
CheckBox checkBox= ( CheckBox ) findViewById( R.id.checkbox01);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
          btn.setVisibility(VISIBLE);
        }
          else{
                btn.setVisibility(GONE);
               }
     }
});

この方法を使用すると、ビューの表示を設定できます。チェックボックスがチェックされている場合にのみボタンが表示され、そうでない場合はボタンが表示されません。機能するかどうかをお知らせください。

于 2012-07-30T10:27:22.263 に答える
0

これを使って:

myButton.setEnabled(false);     

詳細については、この質問を参照してください。

于 2012-07-30T09:54:45.183 に答える
0

以下のコードを使用してボタンを無効にすることができます。

mBtn.setEnabled(false);

以下のコードを使用して後で有効にすることができます

mBtn.setEnabled(true);
于 2012-07-30T09:56:22.050 に答える
0
    mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {        
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            mButton.setEnabled(isChecked);
        }
    });

それと同じくらい簡単です:)

于 2014-10-02T06:14:46.910 に答える
0

このtermsAndConditionsCheckBox.setOnClickListener(new OnClickListener(){を試してください

        @Override
        public void onClick(View v) {

            if (termsAndConditionsCheckBox.isChecked() && privacyPolicyCheckBox.isChecked()){
                agreebutton.setEnabled(true);
                agreebutton.setTextColor(getResources().getColor(android.R.color.white));
                agreebutton.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
            }
            else {
                agreebutton.setEnabled(false);
                agreebutton.setTextColor(getResources().getColor(android.R.color.white));
                agreebutton.setBackgroundColor(getResources().getColor(android.R.color.darker_gray));
            }
        }   
    });
    privacyPolicyCheckBox.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (termsAndConditionsCheckBox.isChecked() && privacyPolicyCheckBox.isChecked()){
                agreebutton.setEnabled(true);
                agreebutton.setTextColor(getResources().getColor(android.R.color.white));
                agreebutton.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
            }
            else {
                agreebutton.setEnabled(false);
                agreebutton.setTextColor(getResources().getColor(android.R.color.white));
                agreebutton.setBackgroundColor(getResources().getColor(android.R.color.darker_gray));
            }

        }
    });
于 2015-08-07T05:45:38.220 に答える