2012-05-03 124 views
3

我在Android中有一個單選按鈕組。 我在選擇項目時收到事件。目前爲止正常。 但是,如果用戶點擊已經選擇的項目,我不會收到該事件。 當用戶點擊某個單選按鈕時,是否有辦法知道(接收一個事件),如果它被選中或沒有? 非常感謝。單選按鈕單擊和重播

回答

3

我不明白爲什麼在已經檢查的單選按鈕,單擊 時,你會得到一個事件,但如果你想通過取消選擇單選按鈕點擊它,如果它已被選中! 檢查這個代碼,它可以幫助你:

RadioGroup radioGroup; 
RadioButton radioButton1; 
RadioButton radioButton2; 
RadioButton radioButton3; 

boolean hack = false; 

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

    radioGroup = (RadioGroup) findViewById(R.id.rg); 
    radioButton1 = (RadioButton) findViewById(R.id.r1); 
    radioButton2 = (RadioButton) findViewById(R.id.r2); 
    radioButton3 = (RadioButton) findViewById(R.id.r3); 

    OnClickListener radioClickListener = new OnClickListener() 
    { 

     public void onClick(View v) 
     {  //The first codition check if we have clicked on an already selected radioButton 
      if (v.getId() == radioGroup.getCheckedRadioButtonId() && hack) 
      { 
       radioGroup.clearCheck(); 
      } 
      else 
      { 
       hack = true; 
      } 
     } 
    }; 

    OnCheckedChangeListener radioCheckChangeListener = new OnCheckedChangeListener() 
    { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
     { 
      hack = false; 
     } 
    }; 

    radioButton1.setOnCheckedChangeListener(radioCheckChangeListener); 
    radioButton2.setOnCheckedChangeListener(radioCheckChangeListener); 
    radioButton3.setOnCheckedChangeListener(radioCheckChangeListener); 

    radioButton1.setOnClickListener(radioClickListener); 
    radioButton2.setOnClickListener(radioClickListener); 
    radioButton3.setOnClickListener(radioClickListener); 

} 
Hope this wil help 
+0

在我的情況,我想獲得的回調,因爲我要開始該項目已被選中的活動事件。 –