简体   繁体   English

错误:无法将OnCheckedChangeListener解析为一种类型

[英]Error: OnCheckedChangeListener cannot be resolved to a type

I have red lines under setOnCheckedChangeListener and OnCheckedChangeListener. 我在setOnCheckedChangeListener和OnCheckedChangeListener下有红线。 The error message is telling me: Multiple Markers at this line - OnCheckedChangedListener cannot be resolved to a type - the method setOnCheckedChangedListener(RadioGroup.OnCheckedChangeListener) in the type RadioGroup is not applicable for the arguments (new OnCheckedChangeListener(){}) 错误消息告诉我:此行有多个标记-OnCheckedChangedListener无法解析为一种类型-RadioGroup类型的setOnCheckedChangedListener(RadioGroup.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");
        }
    }

  });


  }

} 

Two possibilities: 两种可能性:

  • Change to RadioGroup.OnCheckedChangeListener 更改为RadioGroup.OnCheckedChangeListener

  • Add this to the start of your class: 将此添加到课程的开头:

     import android.widget.RadioGroup.OnCheckedChangeListener; 

As for DisplayToast , add the following: 至于DisplayToast ,添加以下内容:

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

And change DisplayToast to displayToast in your code. 并在代码中将DisplayToast更改为displayToast Method names should start with a lower-case letter by convention. 按照惯例,方法名称应以小写字母开头。 Only class names should start with an upper-case letter. 只有类名才能以大写字母开头。

You need to import 您需要导入

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

Import these Two class/interface. 导入这两个类/接口。

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

This code may help for OnChacked Changed 此代码可能对OnChacked Changed有帮助

  • //buttonView.getId() is used to get the ids of Button //buttonView.getId()用于获取Button的ID
  • //boolean isChecked is used that button is Checked or not //boolean isChecked用于表示按钮是否被选中

     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; } } 

    } }

I had the same problem and solved it this way: 我遇到了同样的问题,并通过以下方式解决了问题:

Just change 只是改变

.setOnCheckedChangeListener(new OnCheckedChangeListener(){...

to

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

and it will be working! 它将起作用!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM