java - 无法为对象解析此符号

标签 java android xml android-radiogroup

在 OnCreate() 中创建对象 RadioGroup 时,稍后在另一个函数中调用此对象时,它会显示错误“无法解析此符号”

这是java代码 MainActivity.java

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        RadioGroup group1 = (RadioGroup)findViewById(R.id.que1_rG);
        RadioGroup group2 = (RadioGroup)findViewById(R.id.que2rG);
        RadioGroup group3 = (RadioGroup)findViewById(R.id.que3rG);
        RadioGroup group4 = (RadioGroup)findViewById(R.id.que4rG);
        RadioGroup group5 = (RadioGroup)findViewById(R.id.que5rG);
        RadioGroup group6 = (RadioGroup)findViewById(R.id.que6rG);
        RadioGroup group7 = (RadioGroup)findViewById(R.id.que7rG);
        RadioGroup group8 = (RadioGroup)findViewById(R.id.que8rG);
        RadioGroup group9 = (RadioGroup)findViewById(R.id.que9rG);
        RadioGroup group10 = (RadioGroup)findViewById(R.id.que10rG);
    }

    public void submitButton(View view)
    {
        int checkedRadio1= group1.getCheckedRadioButtonId();
        Toast.makeText(this,"Score is : " + score,Toast.LENGTH_SHORT);
        Log.v("MainActivity","Score is  " + score);
        score = 0;
    }

最佳答案

您收到 cannot resolve symbol 的原因是您尚未在类级别声明您的 RadioGroup group1。由于您已在 onCreate 中声明和分配,因此其范围仅限于 onCreate()。要在其他方法中访问,请将其作为类成员。

声明RadioGroup group1为类成员如下:

public class MainAcivity extends Activity{
    private RadioGroup group1;
    //Declare other RadioGroup group2,group3...group 10. if you intend
    //to access them outside of onCreate()
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        group1 = (RadioGroup)findViewById(R.id.que1_rG);
        ...
    }
      public void submitButton(View view) {
        int checkedRadio1= group1.getCheckedRadioButtonId();
        Toast.makeText(this,"Score is : " + score,Toast.LENGTH_SHORT).show();
        Log.v("MainActivity","Score is  " + score);
        score = 0;
    }
}

注意: 同样的事情适用于您希望在 onCreate() 之外访问的任何其他 RadioGroup

在尝试显示 Toast 时,您还缺少对 show() 方法的调用。如果不调用 show(),将不会显示 Toast 消息。

代替

Toast.makeText(this,"Score is : "+ score,Toast.LENGTH_SHORT)

使用

Toast.makeText(this,"Score is : "+ score,Toast.LENGTH_SHORT).show()

关于java - 无法为对象解析此符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51115398/

相关文章:

Android DatePicker Fragment 返回一个月前的日期

android - 如何检查 react-native 库的 64 位兼容性

jquery - $(xml).find ('someElement' ) : pulling values with jquery from xml with Namespaces

Java - 重定向进程 I/O(管道)正在停滞

java - Java 中的 CSV 到表

java - 带有 grunt watch 自动重载的本地 tomcat 服务器

java - Proguard 的哪个优化选项删除了 if() 语句?

java - 写入行时 eclipse(ADT) 崩溃包括 "R."

java - 使用 LinkedHashSet 时计算出现次数

xml - XML 标签中可以使用非拉丁字符吗?