2014-05-19 33 views
1

我正在通過構建小費計算器的在線教程工作。在視頻中,這個傢伙展示瞭如何構建內聯點擊監聽器。我正在嘗試爲複選框和廣播組生成點擊偵聽器。但是,似乎有一個衝突,我無法解決問題。OnCheckedChangeListener與checkBox vs radioGroup衝突

下面是複選框更改偵聽器的設置..

friendlyCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 

      checklistValues[0] = (friendlyCheckBox.isChecked())?4:0; 

      setTipFromWaitressChecklist(); 
      updateTipFinalBill(); 

     } 

    }); 

,這裏是爲radioGroup中更改偵聽器的設置..

howHotRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     public void onCheckedChanged(RadioGroup group, int checkedId) { 


     } 


    }); 

我得到這個錯誤與radioGroup中改變聽衆

The method setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener) in the type RadioGroup is not applicable for the arguments (new CompoundButton.OnCheckedChangeListener(){}) 

做了一些研究後,我來到這個線程.. Reasons for receiving "RadioGroup is not applicable for the arguments"

還告訴我,導入此

import android.widget.RadioGroup.OnCheckedChangeListener; 

當我做進口,我得到這個錯誤

import android.widget.RadioGroup.OnCheckedChangeListener collides with another import statement 

我認爲,這是兩個相互矛盾的進口,但是當我更換一個與其他我的錯誤只是從我的複選框移動到我的radioGroup。

import android.widget.CompoundButton.OnCheckedChangeListener; 
import android.widget.RadioGroup.OnCheckedChangeListener; 

有誰知道如何解決這個問題?

回答

6

不進口任何人,只是相應的外部類,然後創建匿名偵聽器時使用內部類的名稱,即

import android.widget.CompoundButton; 
import android.widget.RadioGroup; 

然後

howHotRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() ... 
friendlyCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() ... 
+0

真棒...拯救了我的一天...... ;-) –