2014-02-19 160 views
0

我在setOnCheckedChangeListener和OnCheckedChangeListener下有红线。该错误消息告诉我:多个标记在这条线 - OnCheckedChangedListener不能被解析为一个类型 - 在类型RadioGroup中的方法setOnCheckedChangedListener(RadioGroup.OnCheckedChangeListener)不适用于参数(新OnCheckedChangeListener(){})错误:OnCheckedChangeListener无法解析为类型

package com.lifematters; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.View; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.Toast; 

public class Test1 extends Activity { 

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

    //define Navigation Image Buttons 
    final Button nextBtn = (Button) findViewById(R.id.btnNext); 



    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioAnswers1); 
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    { 
     public void onCheckedChanged (RadioGroup group, int checkedId){ 

     final RadioButton radioButton1 = (RadioButton) findViewById(R.id.radioA1); 
     final RadioButton radioButton2 = (RadioButton) findViewById(R.id.radioA2); 
     final RadioButton radioButton3 = (RadioButton) findViewById(R.id.radioA3); 
     final RadioButton radioButton4 = (RadioButton) findViewById(R.id.radioA4); 

     if (radioButton1.isChecked()) { 
      DisplayToast("No, not at all"); 

     } else if (radioButton2.isChecked()) { 
      DisplayToast("On some days"); 

     }else if (radioButton3.isChecked()) { 
      DisplayToast("On more than half the days"); 

     }else { 
      DisplayToast("Nearly everyday"); 
     } 
    } 

    }); 


    } 

} 
+0

按** ctrl + shift + o **在你的eclipse中导入类.. –

回答

4

两种可能性:

  • 更改为RadioGroup.OnCheckedChangeListener

  • 添加到您的类的开始:

    import android.widget.RadioGroup.OnCheckedChangeListener; 
    

至于DisplayToast,添加以下内容:

public void displayToast(String text){ 
    Toast.makeText(this, text, Toast.Toast.LENGTH_SHORT).show(); 
} 

而在你的代码更改DisplayToastdisplayToast。方法名称应该按照惯例以小写字母开头。只有类名应该以大写字母开头。

+0

修复了这个问题,谢谢:)。现在我得到DisplayToast的错误? DisplayToast(String)方法对于新类型RadioGroup.OnCheckedChangeListener()是未定义的。{} –

+0

您似乎从某处复制了代码并留下了一些部分。看到我编辑的答案。 –

+0

非常感谢你,你有两次Toast,但我解决了问题,谢谢:) –

3

您需要导入

import android.widget.RadioGroup; 
import android.widget.RadioGroup.OnCheckedChangeListener; 
1

导入其中两个类/接口。

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

此代码可以帮助OnChacked改变

  • //buttonView.getId()用于获取按钮
  • //boolean isChecked的IDS使用该按钮被选中或不

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    
    
    if (isChecked) { 
    
        switch (buttonView.getId()) { 
    
        case R.id.radioA1: 
          DisplayToast("No, not at all"); 
         radioA2.setChecked(false); 
         break; 
    
        case R.id.radioA2: 
         DisplayToast("On some days") 
         radioA1.setChecked(false); 
         break; 
    
           ..... 
           ..... 
    
    
        default: 
         break; 
        } 
    
    } 
    

    }

0

我有同样的问题,解决这样说:

只要改变

.setOnCheckedChangeListener(new OnCheckedChangeListener(){... 

.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){... 

,这将是工作!

相关问题