Здравствуйте, у меня есть некоторое Activity, посредством которого должна выполняться некоторая совокупность вычислительных операций и эти действия должны выполняться строго последовательно, под определённым алгоритмом.
Данный алгоритм должен выполняться следующий образом:
1) Инициализация действия(RadioGroup);
2) Выбор значений переменных для выбранного действия(ListView);
3) Вывод ответа на следующий Activity(Toast).
Сейчас при выполнении алгоритма выводится 0.0..
Т.к., при выполнении 1-го действия, игнорируется работа 2-го действия алгоритма, впоследствии выводится 0.0.
Однако, если выполнить сначала 2-ое действие, а потом 1-ое, приложение выводит правильный ответ.
Как можно исправить ошибку?
Код 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);
}
});
}
}