Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
#1

Как найти оптимальный вариант? - Программирование Android

13.09.2015, 22:46. Просмотров 602. Ответов 12
Метки нет (Все метки)

Имеется RadioGroup с тремя RadioButton и поле EditText.

Задача.

В поле вводится значение например "1". Нужно чтобы при выборе второй RadioButton значение увеличилось на 10(относительно введенного значения, а при выборе третьей RadioButton, значение EditText увеличилось на 100(относительно введенного значения) и все тоже самое в обратном порядке.

Вот мое начало. Т.е. я начал писать. И я задумался как оптимально подойти к этому вопросу
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
 @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                float num =0;
                if (TextUtils.isEmpty(kdg.getText().toString())){
                    return;
                }
                num = Float.parseFloat(kdg.getText().toString());
                switch (checkedId) {
                    case R.id.rBtnDg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameDg)+":");
                        float result = num * 100;
                        kdg.setText(""+ result);
                        break;
                    case R.id.rBtnKdg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameKdg)+":");
                        result = num * 10;
                        kdg.setText("" + result);
                        break;
                    case R.id.rBtnMdg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameMdg)+":");
                        
                        result = num;
                        kdg.setText("" + result);
                        break;
 
                    default:
                        break;
                }
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2015, 22:46     Как найти оптимальный вариант?
Посмотрите здесь:

Оптимальный выбор IDE - Программирование Android
Что лучше Eclipse, Android Studio, NetBeens ?

Стержень нужно разрезать на стержни. Найти оптимальный вариант раскроя - QBasic
Вот условие задачки: Стержень длиной l0 нужно разрезать на стержни длиной l1,l2...lk. Количество отрезков каждого типа не ограничено. Найти...

Найти оптимальный вариант приобретения тракторов, обеспечивающий выполнение всех работ при минимальных денежных затратах - Методы оптимизации
Вот задача: http://www.cyberforum.ru/attachment.php?attachmentid=394403&stc=1&d=1399060998 16. Сельскохозяйственное предприятие может...

Оптимальный вариант структуры БД - MySQL
Здравствуйте! Прошу совета по организации структуры базы данных. К примеру, мне требуется хранить в БД комментарии к разным постам... Так...

Пытаюсь собрать оптимальный вариант - Игровой компьютер
Доброго времени суток уважаемые! Давно хотел заменить комп, но при каждом подходящем случае мне удавалось его починить и замена...

Какой вариант более оптимальный? - C++
Доброго времени суток. Пишу лабу - распознаватель числовых констант. Возник вопрос, как оптимальнее, с точки зрения выполнения кода...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
15.09.2015, 00:44  [ТС]     Как найти оптимальный вариант? #2
Может немного не правильно описал я. Попробую еще раз.

Имеется разметка
XML
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
<RadioGroup
            android:id="@+id/rBtnGroupG"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/rBtnNameDg"
                android:id="@+id/rBtnDg" />
 
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/rBtnNameKdg"
                android:id="@+id/rBtnKdg" />
 
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="@string/rBtnNameMdg"
                android:id="@+id/rBtnMdg" />
        </RadioGroup>
 
        <android.support.design.widget.TextInputLayout
            android:id="@+id/til_kdg"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/rBtnGroupG">
            <EditText
                android:id="@+id/kdg"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Введите значение в МДж:"
                android:textSize="12dp"
                android:inputType="numberDecimal" />
        </android.support.design.widget.TextInputLayout>
Требуется сделать так. Например выбрана пункт с id/rBtnMdg в EditText вводим например 1. Нужно чтобы при переключении пункта на id/rBtnKdg значение динамически изменилось на 10(т.е. 1*10), при выборе третьего пункта id/rBtnDg на 100(т.е.1*100).
В итоге если я буду просто щелкать по пунктам значения будут меняться в зависимости от пункта. Сам listener вот
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
 rgDg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
 
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
 
                switch (checkedId) {
                    case R.id.rBtnDg:
 
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameDg) + ":");
                        break;
                    case R.id.rBtnKdg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameKdg) + ":");
                                           break;
                    case R.id.rBtnMdg:
 
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameMdg) + ":");
 
 
                        break;
 
                    default:
                        break;
                }
            }
        });
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
17.09.2015, 00:37  [ТС]     Как найти оптимальный вариант? #3
Подскажите что я делаю не правильно? При переключении должно изменяться значение в в поле EditText

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
 final RadioGroup rgDg = (RadioGroup) rootView.findViewById(R.id.rBtnGroupG);
        RadioGroup rgKal = (RadioGroup) rootView.findViewById(R.id.rBtnGroupKal);
 
 
 
        final TextInputLayout til = (TextInputLayout) rootView.findViewById(R.id.til_kdg);
        final EditText kdg = (EditText) til.findViewById(R.id.kdg);
        final TextInputLayout til1 = (TextInputLayout) rootView.findViewById(R.id.til_Kkal);
        final EditText kdg1 = (EditText) til.findViewById(R.id.Kkal);
        final RadioButton rBtnMdg = (RadioButton) rootView.findViewById(R.id.rBtnMdg);
        final RadioButton rBtnKdg = (RadioButton) rootView.findViewById(R.id.rBtnKdg);
        final RadioButton rBtnDg = (RadioButton) rootView.findViewById(R.id.rBtnDg);
        rgDg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
 
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
 
              double a = Double.parseDouble(kdg.getText().toString());
 
 
                switch (checkedId) {
                    case R.id.rBtnDg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameDg) + ":");
                        if (rBtnKdg.isChecked()) {
                        a = Double.parseDouble(kdg.getText().toString());
                        kdg.setText("" + (a * 1000));
                            break;
                        }
                        if  (rBtnMdg.isChecked()) {
                            a = Double.parseDouble(kdg.getText().toString());
                            kdg.setText("" + (a * 1000000));
                            break;
                        }
                        break;
                    case R.id.rBtnKdg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameKdg) + ":");
                        if (rBtnDg.isChecked()) {
                        a = Double.parseDouble(kdg.getText().toString());
                        kdg.setText("" + (a / 1000));
                             break;
                    }
 
                        if (rBtnMdg.isChecked()) {
                            a = Double.parseDouble(kdg.getText().toString());
                            kdg.setText("" + (a * 1000));
                            break;
                        }
 
                        break;
                    case R.id.rBtnMdg:
                        til.setHint("Введите значение в " + getString(R.string.rBtnNameMdg) + ":");
                       if (rBtnDg.isChecked()) {
                           a = Double.parseDouble(kdg.getText().toString());
                           kdg.setText("" + (a / 1000000));
                           break;
                       }
 
                       if (rBtnKdg.isChecked()) {
                           a = Double.parseDouble(kdg.getText().toString());
                           kdg.setText("" + (a / 1000));
                           break;
                       }
 
                        break;
 
                    default:
                        break;
                }
            }
        });
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
17.09.2015, 01:16     Как найти оптимальный вариант? #4
Так ты скажи что не работает или работает не правильно?
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
17.09.2015, 17:56  [ТС]     Как найти оптимальный вариант? #5
При переключении по RadioButton в поле EditText должно меняться значение туда и обратно. А у меня получается в одну сторону меняется, т.е. при переходе на вторую кнопку значение увеличивается на 1000, на третью на 1000000. А вот обратно не меняется. значение остается неизменным.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
18.09.2015, 13:30     Как найти оптимальный вариант? #6
Ну так ты парсишь значение при каждом нажатии
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
20.09.2015, 19:26  [ТС]     Как найти оптимальный вариант? #7
Вот на примере этого кода с выпадающим списком, мне хотелось бы сделать только с RadioButton. Но так как я новичок и только учусь, у меня почему то не получается. Может Кто поможет дать мыслю и поможет сделать толчок как это можно реализовать.
Миниатюры
Как найти оптимальный вариант?  
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
25.09.2015, 21:13  [ТС]     Как найти оптимальный вариант? #8
Имеется три кнопки RadioButton - например 1, 2 и 3
Как прописать условие? При выборе RadioButton 1 проверялось условие такое, если переход был сделан с кнопки 3 (то сделать так то) или с кнопки 2 (то сделать так то)
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
02.10.2015, 00:06  [ТС]     Как найти оптимальный вариант? #9
Немного разобрался сам, но не до конца. Почему у меня выполняется только первое условие, в каждом выбранном пункте?
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
final RadioGroup rGroupDg = (RadioGroup) rootView.findViewById(R.id.rGroupDg); //Определяем Группу радио кнопок Дж
        final RadioButton rBtnDg = (RadioButton) rootView.findViewById(R.id.rBtnDg);
        final RadioButton rBtnKdg = (RadioButton) rootView.findViewById(R.id.rBtnKdg);
        final RadioButton rBtnMdg = (RadioButton) rootView.findViewById(R.id.rBtnMdg);
        final EditText etDg = (EditText) rootView.findViewById(R.id.etDg);//поле ввода и ответа Дж
 
        rGroupDg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
 
                      @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
 
                double resultDg = Double.parseDouble(etDg.getText().toString());
 
                switch (checkedId) {
                    case R.id.rBtnDg:
                    if (rBtnMdg!=null){
                        etDg.setText(""+resultDg*1000000);
 
                    }
                       else if (rBtnKdg!=null){
                        etDg.setText(""+resultDg*1000);
 
                    }
                     Toast.makeText(getContext(), "Ваш выбор:  "+getString(R.string.rBtnNameDg), Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.rBtnKdg:
                        if (rBtnMdg!=null){
                            etDg.setText(""+resultDg/1000);
 
                        }
                        else if (rBtnDg!=null){
                            etDg.setText(""+resultDg*1000);
 
                        }
 
                        Toast.makeText(getContext(), "Ваш выбор:  "+getString(R.string.rBtnNameKdg), Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.rBtnMdg:
                        if (rBtnDg!=null){
                            etDg.setText(""+resultDg/1000000);
 
                        }
                        else if (rBtnKdg!=null){
                            etDg.setText(""+resultDg/1000);
 
                        }
 
                        Toast.makeText(getContext(), "Ваш выбор:  "+getString(R.string.rBtnNameMdg), Toast.LENGTH_SHORT).show();
                        break;
 
                    default:
                        break;
                }
            }
        });
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
05.10.2015, 15:15  [ТС]     Как найти оптимальный вариант? #10
Что я делаю не правильно? Не отрабатывают условия
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
final RadioGroup radiogroup = (RadioGroup) findViewById(R.id.rGroup);
 
        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            RadioButton rB3 = (RadioButton)findViewById(R.id.rB3);
            RadioButton rB2 = (RadioButton)findViewById(R.id.rB2);
            RadioButton rB1 = (RadioButton)findViewById(R.id.rB1);
            EditText eT = (EditText)findViewById(R.id.eT);
 
 
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
 
 
                switch (checkedId) {
                    case R.id.rB1:
                        if (rB1 != null) { //Если предыдущая кнопка
                            int checkedRadioButtonId = radiogroup.getCheckedRadioButtonId(); // смотрим идентификатор кнопки
                            if (checkedRadioButtonId==R.id.rB3){ //если идентификатор равен третьей кнопки то..
                                eT.setText("Переход кнопку 1 был с кнопки 3");
                            } else if (checkedRadioButtonId==R.id.rB2){
                                eT.setText("Переход кнопку 1 был с кнопки 2");
                            }
                        }
 
 
                        /*Toast.makeText(getContext(), "Ваш выбор:  " + getString(R.string.rBtnNameDg), Toast.LENGTH_SHORT).show();*/
                            break;
                    case R.id.rB2:
 
 
                        /*Toast.makeText(getContext(), "Ваш выбор:  " + getString(R.string.rBtnNameKdg), Toast.LENGTH_SHORT).show();*/
                        break;
                    case R.id.rB3:
 
                        /*Toast.makeText(getContext(), "Ваш выбор:  " + getString(R.string.rBtnNameMdg), Toast.LENGTH_SHORT).show();*/
                        break;
 
                    default:
                        break;
                }
            }
        });
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
15.10.2015, 21:18  [ТС]     Как найти оптимальный вариант? #11
При тесте на эмуляторе с андройд версии 4,0 все отлично работает, с версиями выше выдает ошибку на 91 строчке
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
package com.delyanka.help_the_farmer;
 
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;
 
 
public class TabPerevodEnerdgy extends Fragment implements View.OnClickListener    {
    private int selectedDgId;
    private int selectedKalId;
    private Button rbMdg;
    private Button rbKdg;
    private Button rbDg;
    private double otvet1;
    private double otvet2;
    private double otvet3;
    private double dg;
    private double kal;
    private double resultDg;
    private EditText etKal;
    private EditText etDg;
    private EditText etKormEd;
    private TextInputLayout tilDg;
    private TextInputLayout tilKal;
    private TextInputLayout tilKormEd;
 
 
 
 
    public View onCreateView(final LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) {
         View rootView = inflater.inflate(R.layout.tab_perevod_enerdgy, container, false);
 
        FloatingActionButton fab_bottom_help = (FloatingActionButton) rootView.findViewById(R.id.fab_bottom_help);
        fab_bottom_help.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
 
                Snackbar.make(view, getString(R.string.perevodEd), Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        RadioGroup rgDg = (RadioGroup)rootView.findViewById(R.id.rgDg);
        tilDg = (TextInputLayout) rootView.findViewById(R.id.tilDg);
        etDg = (EditText) tilDg.findViewById(R.id.etDg); //Определяем тектовое поле для ввода значения ДЖ
 
        selectedDgId = rgDg.getCheckedRadioButtonId(); //временная переменная для хранения ID выбронной кнопки ДЖ
 
        RadioGroup rgKal = (RadioGroup)rootView.findViewById(R.id.rgKal);
        tilKal = (TextInputLayout) rootView.findViewById(R.id.tilKal);
        etKal = (EditText)tilKal.findViewById(R.id.etKal); //Определяем тектовое поле для ввода значения Калорий
 
        selectedKalId = rgKal.getCheckedRadioButtonId(); //временная переменная для хранения ID выбронной кнопки Калорий
 
        tilKormEd = (TextInputLayout) rootView.findViewById(R.id.tilKormEd);
        etKormEd = (EditText)tilKormEd.findViewById(R.id.etKormEd); //Определяем тектовое поле для ввода значения Кормовых единиц
 
        Button btResult = (Button) rootView.findViewById(R.id.btResult);
        Button btClearResult = (Button) rootView.findViewById(R.id.btClearResult);
         rbDg = (Button) rootView.findViewById(R.id.rbDg);
         rbKdg = (Button) rootView.findViewById(R.id.rbKdg);
         rbMdg = (Button) rootView.findViewById(R.id.rbMdg);
        Button rbKal = (Button) rootView.findViewById(R.id.rbKal);
        Button rbKKal = (Button) rootView.findViewById(R.id.rbKKal);
        rbDg.setOnClickListener(this);
        rbKdg.setOnClickListener(this);
        rbMdg.setOnClickListener(this);
        rbKal.setOnClickListener(this);
        rbKKal.setOnClickListener(this);
        btResult.setOnClickListener(this);
        btClearResult.setOnClickListener(this);
 
        rgDg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
 
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
 
                if (TextUtils.isEmpty(etDg.getText())){
                    return;
                }
              resultDg = Double.parseDouble(etDg.getText().toString());//Парсим введенное значение в поле Дж
                switch (checkedId) {
 
                    case R.id.rbDg:
 
                        if (selectedDgId == R.id.rbMdg) {
                            etDg.setText("" + resultDg * 1000000);
                        } else if (selectedDgId == R.id.rbKdg) {
                            etDg.setText("" + resultDg * 1000);
                        }
                        break;
                    case R.id.rbKdg:
 
                        if (selectedDgId == R.id.rbMdg) {
                            etDg.setText("" + resultDg * 1000);
                        } else if (selectedDgId == R.id.rbDg) {
                            etDg.setText("" + resultDg / 1000);
                        }
                        break;
                    case R.id.rbMdg:
 
                        if (selectedDgId == R.id.rbDg) {
                            etDg.setText("" + resultDg / 1000000);
                        } else if (selectedDgId == R.id.rbKdg) {
                            etDg.setText("" + resultDg / 1000);
                        }
                        break;
                    default:
                        break;
                }
            }
        });
 
        rgKal.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
 
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                if (TextUtils.isEmpty(etKal.getText())){
                    return;
                }
                final double resultKal = Double.parseDouble(etKal.getText().toString());//Парсим введенное значение в поле Калорий
                switch (checkedId) {
                    case R.id.rbKal:
                        if (selectedKalId==R.id.rbKKal) {
                            etKal.setText("" + resultKal * 1000);
 
                        }
                        break;
                    case R.id.rbKKal:
                        if (selectedKalId==R.id.rbKal){
                            etKal.setText(""+resultKal/1000);
                        }
                        break;
                    default:
                        break;
                }
            }
        });
 
     return rootView;
 
      }
    public double Dgoul (double dg){
        if (selectedDgId==R.id.rbMdg){
            dg = otvet1;
        } else if (selectedDgId==R.id.rbKdg){
            dg = otvet1/1000;
        } else if (selectedDgId==R.id.rbDg){
            dg = otvet1/1000000;
        }
        return dg;
    }
    public double Kalori (double kal){
        if (selectedKalId==R.id.rbKKal){
            kal = otvet2;
        } else if (selectedKalId==R.id.rbKal){
            kal = otvet2/1000;
        }
        return kal;
    }
 
    @Override
    public void onClick(View v){
        switch (v.getId()) {
            case R.id.btResult:
                tilKal = (TextInputLayout) tilKal.findViewById(R.id.tilKal);
                if (etDg.getText().length()==0 && etKal.getText().length()==0 && etKormEd.getText().length()==0){
                    Toast.makeText(getContext(), "Я не знаю что переводить! Все поля пустые. Введите значение в одно из полей!", Toast.LENGTH_LONG).show();
                }else
                if (etDg.getText().length()>0 && etKal.getText().length()==0 && etKormEd.getText().length()==0){
                    otvet1 = Double.parseDouble(etDg.getText().toString()); // Парсим зничение ДЖ
                    etKal.setText(""+ String.format("%.7f",Dgoul(dg)*238.8459));
                    etKormEd.setText(""+String.format("%.7f",Dgoul(dg)/5.9201352));
                    tilKal.setHint(getString(R.string.youResult));
                    tilKormEd.setHint(getString(R.string.youResult));
 
                }else if (etKal.getText().length()>0 && etDg.getText().length()==0 && etKormEd.getText().length()==0){
                    otvet2 = Double.parseDouble(etKal.getText().toString()); // Парсим значение Калорий
                    etDg.setText(""+String.format("%.7f",Kalori(kal)*0.0041868));
                    etKormEd.setText(""+String.format("%.7f",Kalori(kal)/1414));
                    tilDg.setHint(getString(R.string.youResult));
                    tilKormEd.setHint(getString(R.string.youResult));
 
                }else if (etKormEd.getText().length()>0 && etDg.getText().length()==0 && etKal.getText().length()==0){
                    otvet3 = Double.parseDouble(etKormEd.getText().toString()); // Парсим значение Кормовых единиц
                    etDg.setText(""+otvet3*5.9201352);
                    etKal.setText(""+otvet3*1414);
                    tilKal.setHint(getString(R.string.youResult));
                    tilDg.setHint(getString(R.string.youResult));
                }
                break;
            case R.id.btClearResult:
                etDg.setText(null);
                etKormEd.setText(null);
                etKal.setText(null);
                tilDg.setHint(getString(R.string.inputZnachenie));
                tilKal.setHint(getString(R.string.inputZnachenie));
                tilKormEd.setHint(getString(R.string.inputZnachenie));
                break;
            case R.id.rbKal:
                selectedKalId = v.getId();
 
                break;
            case R.id.rbKKal:
                selectedKalId = v.getId();
                break;
            case R.id.rbDg:
                selectedDgId = v.getId();
                break;
            case R.id.rbKdg:
                selectedDgId = v.getId();
                break;
            case R.id.rbMdg:
                selectedDgId = v.getId();
                break;
 
        }
    }
 
 
}
Лог ошибок
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime: FATAL EXCEPTION: main
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime: Process: com.delyanka.help_the_farmer, PID: 20138
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime: java.lang.NumberFormatException: Invalid double: "0,0041868"
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at java.lang.StringToReal.invalidReal(StringToReal.java:63)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at java.lang.StringToReal.parseDouble(StringToReal.java:269)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at java.lang.Double.parseDouble(Double.java:295)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at com.delyanka.help_the_farmer.TabPerevodEnerdgy$2.onCheckedChanged(TabPerevodEnerdgy.java:91)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.RadioGroup.setCheckedId(RadioGroup.java:174)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.RadioGroup.access$600(RadioGroup.java:54)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:358)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.CompoundButton.setChecked(CompoundButton.java:130)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.CompoundButton.toggle(CompoundButton.java:87)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.RadioButton.toggle(RadioButton.java:76)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.widget.CompoundButton.performClick(CompoundButton.java:99)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:18422)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:733)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:136)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5001)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:515)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
10-13 23:37:06.842 20138-20138/com.delyanka.help_the_farmer E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
15.10.2015, 22:35     Как найти оптимальный вариант? #12
Проблема не в версии,а в локали. В какой-то десятичный разделитель точка, в каком-то - запятая. Замените 91 строку на это:
Java
1
2
3
String text = String.valueOf(etDg.getText());
text = text.replaceAll(",", "\\.");
resultDg = Double.parseDouble(text);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2015, 22:50     Как найти оптимальный вариант?
Еще ссылки по теме:

оптимальный вариант авторизации пользователя - PHP
Здравствуйте, предложите пожалуйста самый оптимальный вариант авторизации пользователя. а точнее поделитесь кодом=)

Оптимальный вариант видеокарты до 500$ - Видеокарты
Добрый день! Моя конфигурация такая: Сейчас стоит NVIDIA GeForce GT 430 (1024 Mb), но игры новые она как-то не особо...

Стабилизация видео в VirtualDubMod, оптимальный вариант - Видеопрограммы
Нужно стабилизировать видео, отснятое видеокамерой. Пока нашёл оптимальный вариант: VirtualDubMod с плагином Deshaker. Делаю всё как...

Подскажите оптимальный вариант системника для игр - Игровой компьютер
Подскажите оптимальный вариант системника для игр. Бюджет 100 000 р


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

Или воспользуйтесь поиском по форуму:
Dmitriy505
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 21
15.10.2015, 22:50  [ТС]     Как найти оптимальный вариант? #13
Цитата Сообщение от Spelcrawler Посмотреть сообщение
String text = String.valueOf(etDg.getText());
text = text.replaceAll(",", "\\.");
resultDg = Double.parseDouble(text);
Спасибо. На это внимание как то и не обратил. Наверное потому, что запятую он и не дает вводить, а ответ дает с запятой.. Теперь все ок. Спасибо еще раз
Yandex
Объявления
15.10.2015, 22:50     Как найти оптимальный вариант?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru