2012-10-30 21 views
7

Androidのアプリに2つのラジオボタンと5つのチェックボックスがあります。保存ボタンもあります。 ユーザーが[保存]ボタンをクリックすると、ユーザーがチェックしたチェックボックスをオフにする必要があります。私は次のコードを試してみました。しかし、それは動作していません。あなたはこのために、チェックボックスを使用したい場合はチェックされているAndroidのチェックボックスをオフにする方法

if (chkOthers.isChecked()) 
    chkOthers.setChecked(false); 
    chkOthers.setSelected(false); 
} 
+1

このスニペットのコンテキストとは何ですか?それは短すぎて役に立たない。 – Tim

+1

これを行うには if(chkOthers.isChecked()) { chkOthers.performClick(); } これはチェックボックスで通常のクリック操作を実行します。これはonClickListener()も実行するため、賢明に使用してください – Hardik4560

答えて

4

は、あなたは、両方のチェックボックスにonItemClickListenerを設定し、onItemClick()メソッド内の他の選択を解除する必要がありますすることができます。例は次のようになります: - 私は、彼らが最初から組み込まこの機能が付属していますので、あなたは、この動作のためのラジオボタンを使用する必要があることをreccomendう

CheckBox cb1,cb2; 
//Considering you can initialize the above variables 
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener{ 
    onCheckedChanged (CompoundButton view, boolean isChecked){ 
     cb2.setChecked(false); 
    } 
}); 
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener{ 
    onCheckedChanged (CompoundButton view, boolean isChecked){ 
     cb1.setChecked(false); 
    } 
}); 

10

ボタンのchk1.toggle()をクリックして、チェックされているもののチェックを外してください。

public class TestCheckBoxActivity extends Activity { 
    /** Called when the activity is first created. */ 
    CheckBox chk1, chk2; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     chk1 = (CheckBox)findViewById(R.id.checkBox1); 
     chk2 = (CheckBox)findViewById(R.id.checkBox2); 

     Button btn = (Button)findViewById(R.id.button1); 

     btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(chk1.isChecked()){ 
       chk1.toggle(); 
      } 

      if(chk2.isChecked()){ 
       chk2.toggle(); 
      } 

     } 
    }); 
     } 
} 
関連する問題