Как оформить последовательность выполняемых действий?

Андрей  Романов

Здравствуйте, у меня есть некоторое Activity посредством которого должна выполняться некоторая совокупность вычислительных операций и эти действия должны выполняться строго последовательно, под определённым алгоритмом.

Данный алгоритм должен выполняться следующий образом:

Инициализация действия RadioGroup
Выбор значений переменных для выбранного действия ListView
Вывод ответа на следующий Activity(Toast)
Сейчас при выполнении алгоритма выводится 0.0

Т.к., при выполнении 1-го действия, игнорируется работа 2-го действия алгоритма, впоследствии выводится 0.0

Однако, если выполнить сначала 2-ое действие, а потом 1-ое, приложение выводит правильный ответ.

Думаю, что ошибка в обработчике действия RadioGroup, но не знаю как его поправить. Как можно исправить ошибку? Заранее спасибо, за любой дельный совет!)

Код MessageActivity1:
```
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import static app.analysis.mai.MatrixMessageActiviry123.w0;

public class MessageActivity1 extends AppCompatActivity {

TextView celzadach, poyas4, poyas5, poyas6;
RadioGroup rgroup;
RadioButton sravnenkr1, sravnenkr2, sravnenkr3;  //Объявление элементов MessageActivity1
ListView spisok1;
Spinner spn2;
ArrayAdapter<String> adapter2;
String prioritet[] = {"9", "8", "7", "6", "5", "4", "3", "2", "1"};
double znachn1;  // Объявление переменных
Button sootnesen1;
static double d, b;
boolean block;

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

    celzadach = (TextView) findViewById(R.id.celzadach);
    Intent intent5 = getIntent();
    String message1 = intent5.getStringExtra("message1"); //Перенос введенного сообщения из RememderEditText Activity1 в TextView MessageActivity1
    celzadach.setText(message1);

    poyas4 = (TextView) findViewById(R.id.poyas4);
    poyas4.setText("Определение важности критериев сравнения относительно заявленной цели:");

    poyas5 = (TextView) findViewById(R.id.poyas5);
    poyas5.setText("Какой из сравниваемых критериев более предпочтительный?");

    poyas6 = (TextView) findViewById(R.id.poyas6);
    poyas6.setText("Предпочтительней на сколько?");

    sravnenkr1 = (RadioButton) findViewById(R.id.sravnenkr1);
    Intent intent6 = getIntent();
    String message2 = intent6.getStringExtra("message2"); //Перенос введенного сообщения из RememderEditText Activity1 в RadioButton MessageActivity1
    sravnenkr1.setText(message2);

    sravnenkr2 = (RadioButton) findViewById(R.id.sravnenkr2);
    Intent intent7 = getIntent();
    String message3 = intent7.getStringExtra("message3"); //Перенос введенного сообщения из RememderEditText Activity1 в RadioButton MessageActivity1
    sravnenkr2.setText(message3);

    sravnenkr3 = (RadioButton) findViewById(R.id.sravnenkr3);
    sravnenkr3.setText("Сравниваемые критерии одинаково важны");

    rgroup = (RadioGroup) findViewById(R.id.RadioGroup1);
    rgroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, @IdRes int q) { //Обработчик событий нажатия на RadioButton, по выбору действия
            d = 1;
            b = 1;
            if (q == sravnenkr1.getId()) { //Обработка нажатия 1-го RadioButton c присвоением переменной d и b значений
                d = znachn1;
                b = 1 / d;
            }
            else if (q == sravnenkr2.getId()) { //Обработка нажатия 2-го RadioButton c присвоением переменной d и b значений
    b = znachn1;
    d = 1 / b;
}

}
}); //Возможная ошибка кроется тут, т.к. дефакто присваиваемая тут переменная znachn1=0.0, уже после её присваивания игнорируется работа другого обработчика

    spisok1 = (ListView) findViewById(R.id.spisokPrioritet);
    adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, prioritet);
    spisok1.setAdapter(adapter2);
    spisok1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position2, long id) { //Обработчик событий нажатия на RadioButton, по выбору значения переменной znachn1 по id
            znachn1 = (id < 9) ? 9 - id : 0; //Обработка нажатия на элементы списка, где согласно условию znachn1 = (ЕСЛИ ID < 9) ТО 9 - ID ИНАЧЕ 0
        }
    });

    sootnesen1 = (Button) findViewById(R.id.sootnesen1);
    sootnesen1.setText("Далее");
    sootnesen1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent intent8 = new Intent(MessageActivity1.this, MessageActivity2.class);
            Toast toast1 = Toast.makeText(getApplicationContext(),"w0="+w0, Toast.LENGTH_SHORT); // Вывод значения импортированной ранее переменной w0, посредством произведённого вычисления, через Toast на MessageActivity2 по нажатию на Button
            toast1.show();
            startActivity(intent8);
        }

    });

}

}
```

1 чел.