Не удается разрешить этот символ для объекта - PullRequest
0 голосов
/ 30 июня 2018

При создании объекта RadioGroup в OnCreate (), когда позже этот объект вызывается в другой функции, он показывает ошибку «не удается разрешить этот символ»

Вот код 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;
    }

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Объявление кнопки группы радио на уровне класса. Вы используете 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;
            }
0 голосов
/ 30 июня 2018

Причина, по которой вы не можете разрешить символ, заключается в том, что вы не объявили свой 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;
    }
}

Примечание: То же самое относится к любому другому RadioGroup, к которому вы хотели бы получить доступ за пределами onCreate().

Вы также пропускаете вызов метода show() при попытке отобразить Toast. Без вызова show() тостовое сообщение не будет отображаться.

Вместо

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

Используйте

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

...