Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 20.10.2017
Сообщений: 8
1

Ошибка вывода переменной через toast

15.11.2017, 22:00. Показов 1928. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, я пишу математическое приложение на Java. Непосредственно сейчас в программе существует проблема, которая как не даёт продолжить работу, так и проверить исходный код, сам как решить её я не знаю..
Вообщем сейчас я имею следующий код для конкретного Activity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import android.content.Intent;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
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.a;
 
public class MessageActivity1 extends AppCompatActivity {
 
TextView celzadach, poyas4, poyas5, poyas6;
RadioGroup rgroup;
RadioButton sravnenkr1, sravnenkr2, sravnenkr3;
Spinner spn2;
String prioritet[] = {"9", "8", "7", "6", "5", "4", "3", "2", "1"};
ArrayAdapter<String> adapter2;
int znachn1;
Button sootnesen1;
static int d, b;
 
@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");
    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");
    sravnenkr1.setText(message2);
 
    sravnenkr2 = (RadioButton) findViewById(R.id.sravnenkr2);
    Intent intent7 = getIntent();
    String message3 = intent7.getStringExtra("message3");
    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) {
            switch (q) {
                case R.id.sravnenkr1:
                    d = znachn1;
                    b = 1 / znachn1;
                    break;
                case R.id.sravnenkr2:
                    b = znachn1;
                    d = 1 / znachn1;
                    break;
                case R.id.sravnenkr3:
                    d = 1;
                    b = 1;
                    break;
            }
        }
    });
 
    spn2 = (Spinner) findViewById(R.id.spnPrioritet);
    adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, prioritet);
    spn2.setAdapter(adapter2);
    spn2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
 
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int position2, long id) {
            switch (position2) {
                case 0:
                    znachn1 = 9;
                    break;
                case 1:
                    znachn1 = 8;
                    break;
                case 2:
                    znachn1 = 7;
                    break;
                case 3:
                    znachn1 = 6;
                    break;
                case 4:
                    znachn1 = 5;
                    break;
                case 5:
                    znachn1 = 4;
                    break;
                case 6:
                    znachn1 = 3;
                    break;
                case 7:
                    znachn1 = 2;
                    break;
                case 8:
                    znachn1 = 1;
                    break;
            }
        }
 
        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });
 
    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 toast = Toast.makeText(getApplicationContext(),"a="+a, Toast.LENGTH_SHORT);
            toast.show();
            startActivity(intent8);
        }
 
    });
}
}
В рамках работы происходит статический импорт переменной "a" из класса MatrixMessageActiviry123 и вывод её через Toast на следующий Activity.
Код класса MatrixMessageActiviry123:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import static app.analysis.mai.MessageActivity1.b;
import static app.analysis.mai.MessageActivity1.d;
 
public class MatrixMessageActiviry123 {
static int a, e, i;
 
public static void main(String[] args) {
    a = 1;
    e = 1;
    i = 1;
    int[][] matrix1 = {{a, b, 2},
                               {d, e, 7},
                               {4, 5, i}};
 
    for (int i = 0; i < matrix1.length; i++) {
        for (int j = 0; j < matrix1[i].length; j++) {
            System.out.print(matrix1[i][j] + " ");
        }
    }
    System.out.println();
}
}
Однако, при самом переходе Toast выдаёт: "a=0".
Тоже самое выдает, если попытаться вывести сумму переменных b и d.
В чём проблема? Компилятор ни на что не ругается..
Помогите, пожалуйста!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2017, 22:00
Ответы с готовыми решениями:

Ошибка с Toast
public void makeToast(String text){ Toast.makeText(GameActivity.this, text,...

Метод makeText в Toast - ошибка
Здравствуйте, помогите плз, новичку. В строке 81 - Toast.makeText(this, &quot;Нажата кнорка...

Ошибка метода makeText в Toast (AIDE)
Здравствуйте. Редактирую код в AIDE на Android-смартфоне. Выскакивает вот такая ошибка: Вот...

Ошибка в коде вывода двухмерного массива через функию
Вот код #include &lt;iostream&gt; #include &lt;ctime&gt; void Print_Arr(int *ptr_arr, const int size =...

2
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
16.11.2017, 12:33 2
Лучший ответ Сообщение было отмечено Seth_ как решение

Решение

Цитата Сообщение от Seth_ Посмотреть сообщение
В чём проблема?
В том, что ты обращаешься к переменной, которая еще не была инициализирована. Сделай функцию, которая будет делать нужные тебе вычисления и возвращать определенный результат, с ней и работай.
Для чего тебе в Android проекте метод public static void main(String[] args) { } ?
1
0 / 0 / 0
Регистрация: 20.10.2017
Сообщений: 8
17.11.2017, 17:11  [ТС] 3
Спасибо, понял в чём ошибка, попробую с вычислениями разобраться)

Добавлено через 18 часов 32 минуты
korshun84, привет, я разобрался с переменной a и типами переменных. Вырезал тот метод. Для переменных b, d и znachn1 прописал тип double. Далее в рамках проекта я прописал действие деления для d и b:
Java
1
2
3
4
5
class MatrixMessageActiviry123 {
    static byte a = 1;
    static byte e = 1;
    static byte i = 1;
    static double w0 = d/b;
Значение которых задаются через RadioGroup и Spinner.
Однако, при проверке работы программа обрабатывает нажатие только 1-го RadioButton:
Java
1
2
3
4
case R.id.sravnenkr1:
                        d = znachn1;
                        b = 1 / znachn1;
                        break;
и 1-го значения Spinner, т.е znachn1 = 9.
В Toast всегда выводится w0 =81.0, при любой комбинации нажатия на элементы экрана.
Не подскажите как это поправить?
0
17.11.2017, 17:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2017, 17:11
Помогаю со студенческими работами здесь

Отправка из VB.NET через MySQL Connector (net 4.0) переменной типа DateTime - ошибка (несовпадение типов)
Черти что... На сегодняшний день языки программирования, как и форматы, размножились с такой...

Отредактировать код вывода переменной
Здравствуйте! Есть у меня блок в котором есть число и спан, в котором отображается выбранное число....

Присваивание переменной значения вывода
Привет всем. Хотелось бы узнать ,как можно присвоить переменной значения числа, которое выводится,...

Роблема вывода переменной из базы
Доброго времени суток! Парни есть вопрос. Почему таким образом результат не выводится из базы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru