S
S
Saibot122018-01-06 21:08:43
typescript
Saibot12, 2018-01-06 21:08:43

How to arrange an algorithm (sequence) of performed calculations on an Activity?

Hello, I have some Activity, through which a certain set of computational operations must be performed, and these actions must be performed strictly sequentially, under a certain algorithm.
This algorithm should be performed as follows:
1) Action initialization (RadioGroup);
2) Selection of variable values ​​for the selected action (ListView);
3) Outputting a response to the next Activity(Toast).
Now
, when executing the algorithm, 0.0 is displayed.
However, if you perform the 2nd action first, and then the 1st, the application displays the correct answer.
How can the error be corrected?
MessageActivity1 code:

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);
            }

        });

    }
}

Answer the question

In order to leave comments, you need to log in

2 answer(s)
S
Stockholm Syndrome, 2019-10-25
_

interface QueriesItem {
  id: string;
  criterias: QueryScheme[];
}

S
Sergey, 2018-01-07
@red-barbarian

options:
1) hide the list until the initialization of the action is done
2) the list is not active until the initialization is done
3) when the button is pressed, check for the correctness of the operation algorithm.
4) make a wizard with several fragments with a sequence of selecting actions first, then a list.
etc.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question