无法为对象解析此符号
Cannot resolve this symbol for an Object
在 OnCreate() 中创建对象 RadioGroup 时,稍后在另一个函数中调用此对象时会显示错误 "cannot resolve this symbol"
这是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;
}
您收到无法解析符号的原因是您尚未在 class 级别声明您的 RadioGroup group1
。由于您已在 onCreate
中声明和分配,因此其范围仅限于 onCreate()
。要以其他方法访问,请将其设为 class 成员。
声明RadioGroup group1
为class成员如下:
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()
在 class 级别声明单选按钮组。您在函数级别使用 veriable,因此您不能在函数之外使用该变量。
private RadioGroup group1, group2, group3, group4, group5, group6, group7,group8,group9,group10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
group1 = (RadioGroup)findViewById(R.id.que1_rG);
group2 = (RadioGroup)findViewById(R.id.que2rG);
group3 = (RadioGroup)findViewById(R.id.que3rG);
group4 = (RadioGroup)findViewById(R.id.que4rG);
group5 = (RadioGroup)findViewById(R.id.que5rG);
group6 = (RadioGroup)findViewById(R.id.que6rG);
group7 = (RadioGroup)findViewById(R.id.que7rG);
group8 = (RadioGroup)findViewById(R.id.que8rG);
group9 = (RadioGroup)findViewById(R.id.que9rG);
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;
}
在 OnCreate() 中创建对象 RadioGroup 时,稍后在另一个函数中调用此对象时会显示错误 "cannot resolve this symbol"
这是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;
}
您收到无法解析符号的原因是您尚未在 class 级别声明您的 RadioGroup group1
。由于您已在 onCreate
中声明和分配,因此其范围仅限于 onCreate()
。要以其他方法访问,请将其设为 class 成员。
声明RadioGroup group1
为class成员如下:
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()
在 class 级别声明单选按钮组。您在函数级别使用 veriable,因此您不能在函数之外使用该变量。
private RadioGroup group1, group2, group3, group4, group5, group6, group7,group8,group9,group10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
group1 = (RadioGroup)findViewById(R.id.que1_rG);
group2 = (RadioGroup)findViewById(R.id.que2rG);
group3 = (RadioGroup)findViewById(R.id.que3rG);
group4 = (RadioGroup)findViewById(R.id.que4rG);
group5 = (RadioGroup)findViewById(R.id.que5rG);
group6 = (RadioGroup)findViewById(R.id.que6rG);
group7 = (RadioGroup)findViewById(R.id.que7rG);
group8 = (RadioGroup)findViewById(R.id.que8rG);
group9 = (RadioGroup)findViewById(R.id.que9rG);
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;
}