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

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

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

Конвертер температур (Цельсий - Фаренгейт) - Программирование Android

09.02.2015, 16:01. Просмотров 727. Ответов 17
Метки нет (Все метки)

Здравствуйте, для курсовой нужно разработать приложение, я только учусь этому. Вот, что у меня получается:

Код:
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
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
 
import static ru.val.carat.R.id;
import static ru.val.carat.R.id.button;
import static ru.val.carat.R.id.button2;
 
 
public class MainActivity6 extends ActionBarActivity implements View.OnClickListener {
 
   
    EditText etNum1;
    EditText etNum2;
    Button btn1;
    Button btn2;
    double pos1, pos2;
    double chislo;
    double result = 0;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
 
        etNum1 = (EditText) findViewById(id.editText);
        etNum2 = (EditText) findViewById(id.editText2);
        btn1 = (Button) findViewById(button);
        btn1.setOnClickListener(this);
        btn2 = (Button) findViewById(button2);
        btn2.setOnClickListener(this);
        Spinner spin = (Spinner) findViewById(R.id.spinner);
        Spinner spin2 = (Spinner) findViewById(R.id.spinner2);
 
        // адаптер
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.terma, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(adapter);
        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
                this, R.array.terma, android.R.layout.simple_spinner_item);
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin2.setAdapter(adapter2);
 
        if (TextUtils.isEmpty(etNum1.getText().toString()) || TextUtils.isEmpty(etNum2.getText().toString())) {
            return;
        }
        ;
        chislo = Float.parseFloat(etNum1.getText().toString());
        result = Float.parseFloat(etNum2.getText().toString());
        pos1 = spin.getSelectedItemPosition();
        if (pos1 == 0) {
            pos2 = spin2.getSelectedItemPosition();
 
            if (pos2 == 0) {
 
                result = chislo;
            }
            if (pos2 == 1) {
 
                result = ((chislo * 1.8) + 32);
            }
            if (pos2 == 2) {
 
                result = ((chislo - 273) * 1.8 + 32);
            }
 
        }
        if (pos1 == 1) {
 
            pos2 = spin2.getSelectedItemPosition();
 
            if (pos2 == 0) {
 
                result = (chislo * 1.8 - 32);
            }
            if (pos2 == 1) {
 
                result = chislo;
            }
            if (pos2 == 2) {
 
                result = ((chislo - 32) * 5 / 9 + 273.15);
            }
        }
        if (pos1 == 2) {
            pos2 = spin2.getSelectedItemPosition();
 
            if (pos2 == 0) {
 
                result = chislo - 273;
            }
            if (pos2 == 1) {
 
                result = ((chislo - 273.15) * 1.8 + 32);
            }
            if (pos2 == 2) {
 
                result = chislo;
            }
        }
    };
 
 
        // устанавливаем обработчик нажатия
 
    public void onClick(View v) {
        switch (v.getId()) {
            case id.button:
                etNum2.setText("" + result);
                break;
 
            case id.button2:
                etNum1.setText("");
                etNum2.setText("");
                break;
            default:
                break;
 
        }
    }
}
Не могу разобраться, почему не считает.
Миниатюры
Конвертер температур (Цельсий - Фаренгейт)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2015, 16:01     Конвертер температур (Цельсий - Фаренгейт)
Посмотрите здесь:

Конвертер величин - Программирование Android
Хочу сделать простенький конвертер величин, но только чтобы без кнопки &quot;рассчитать&quot;, т.е. например будет два editText, вводим число в...

Конвертер величин - Программирование Android
Здравствуйте! Хочу сделать конвертер массы, длины и т.д., но не знаю как хранить данные о каждой величины. Сделал хранение в базе...

Конвертер валют - Программирование Android
Здравствуйте, нужно реализовать конвертер валют, с динамически подгружаемыми данными. Есть основная валюта (она всегда первая), и...

Конвертер - байты в биты - Программирование Android
Добрый вечер! Напишите пожалуйста формулу, по которой можно решить данное задание, вводя в edit1 число и по нажатию кнопки выводя...

Конвертер величин не работает ( Fragment ) - Программирование Android
Есть фрагмент . В нём я создаю &quot;конвертер величин&quot; , там есть 2 radioGroup(по 4 RadioButton). Одна справа , другая слева. Справа выбирают...

Пытаюсь сделать конвертер валют по курсу с сайта - Программирование Android
Нужно сделать в конвертере валют на Android чтоб валюты считывались с сайта с даными валю если есть доступ к интернету. Посоветуйте что...

Добавить в класс метод для преобразования температур (Цельсий <-> Фаренгейт) - Java SE
Здравствуйте! Есть вот такая задача: Создайте новый класс и назовите его TemperatureConverter. Добавьте в него метод для преобразования...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
09.02.2015, 22:55     Конвертер температур (Цельсий - Фаренгейт) #2
что то мне подсказывает что вы не обновляете адаптер спиннера при каждом просчете.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 10:05     Конвертер температур (Цельсий - Фаренгейт) #3
Эх, Даша, Даша...
Возьмите распечатайте свой код и сбоку "идите" по нему с карандашом в руках.
Вы всё поймёте.
Hedd
13 / 13 / 2
Регистрация: 21.01.2015
Сообщений: 131
10.02.2015, 11:45     Конвертер температур (Цельсий - Фаренгейт) #4
Что то я не могу понять логики..
Зачем тут вообще спиннеры?? Как я понял, это просто должен получиться конвертер, где нужно переводить температуру, введенную в зависимости от EditText ( либо цельсий, либо фаренгейт) путем нажатия кнопки "Посчитать". У вас слишком как то странно все намучено и закручено.
Объясните задумку своего приложения.
Я бы сделал, к примеру, первый пришедший вариант в голову, одно поле для ввода и второе для вывода результата. 2 Кнопки - цельсий и фаренгейт. В зависимости от нажатой выводится результат.
У вас совсем борода непонятная.. Не понял логики и задумки..
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 11:50     Конвертер температур (Цельсий - Фаренгейт) #5
Цитата Сообщение от Hedd Посмотреть сообщение
Зачем тут вообще спиннеры??
Затем, что в спиннерах выбирается из чего и во что переводить.

С задумкой у неё всё в порядке.
Вот с логикой - что, где откуда брать и когда вычислять - да, в коде проблемка.
Для этого и нужен карандаш.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
10.02.2015, 11:54     Конвертер температур (Цельсий - Фаренгейт) #6
Armagedo, хм, а что будет, если в обоих полях введено значение? Тут по логике нужно одно поле для ввода - сверху, а внизу просто TextView. А почему не работает - вы считаете при запуске активити, когда все значения равны нулю. Нужно пересчитывать при нажатии на кнопку.
Pablito
10.02.2015, 11:54
  #7

Не по теме:

или вообще одно поле ввода, два текстовых поля и кнопка "Посчитать"

в поле ввода, например, вводим число 42 и нажимаем "Посчитать" - в текстовых полях выводим что-то типа
42 по цельию = 100500 по фаренгейту
42 по фаренгейту = мульен по цельсию

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

Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 11:58     Конвертер температур (Цельсий - Фаренгейт) #8
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Armagedo, хм, а что будет, если в обоих полях введено значение? Тут по логике нужно одно поле для ввода - сверху, а внизу просто TextView.
Я где-то с этим спорил?

Цитата Сообщение от Spelcrawler Посмотреть сообщение
А почему не работает - вы считаете при запуске активити, когда все значения равны нулю. Нужно пересчитывать при нажатии на кнопку.
Так народ никогда ничему не научится...

Впрочем кому какая разница
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
10.02.2015, 11:59     Конвертер температур (Цельсий - Фаренгейт) #9
Hedd,
Цитата Сообщение от Hedd Посмотреть сообщение
Не понял логики и задумки..
На счет задумки - как мне представляется ТС хочет сделать конвертер не только для температуры.
Здесь по всей видимости может быть и масса и валюта к примеру.
Исходя из этого и был выбран спинер.
На счет логики - действительно она здесь храмает.
Условия проверки должны быть в связаны с нажатием кнопки. У ТС они почему то в onCreate
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 12:05     Конвертер температур (Цельсий - Фаренгейт) #10
Тот факт, что модераторы подрихтовали наименование самой темы, совсем не означает, что она была таковой до их вмешательства.

Существует несколько различных единиц измерения температуры.

Наиболее известными являются следующие:

Градус Цельсия
Градус Фаренгейта
Кельвин (до 1968 года градус Кельвина)
Градус Реомюра
Градус Рёмера
Градус Ранкина
Градус Делиля
Градус Гука
Градус Дальтона
Градус Ньютона
Лейденский градус
https://ru.wikipedia.org/wiki/%D0%95...83%D1%80%D1%8B
Так что верните название темы назад и оставьте в покое спиннеры

В остальном - секрет успеха уже раскрыт.
Осталась вдумчивая реализация.
Hedd
13 / 13 / 2
Регистрация: 21.01.2015
Сообщений: 131
10.02.2015, 12:10     Конвертер температур (Цельсий - Фаренгейт) #11
Хм.. А что на счет real-time конвертации ? К примеру, значение одного поля меняется сразу же во время ввода другого..
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
10.02.2015, 12:14     Конвертер температур (Цельсий - Фаренгейт) #12
Hedd, TextWatcher Вам в помощь
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 12:14     Конвертер температур (Цельсий - Фаренгейт) #13
Цитата Сообщение от Hedd Посмотреть сообщение
А что на счет real-time конвертации ?
Повесьте на первый Edittext текствотчера...
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
10.02.2015, 14:12     Конвертер температур (Цельсий - Фаренгейт) #14
Мне кажется цвет нужен другой, оранжевый как-то не смотрится, приложение то серьезное.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
10.02.2015, 14:14     Конвертер температур (Цельсий - Фаренгейт) #15
Сейчас от такого потока идей приложение само напишется и побьет все топы.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 14:15     Конвертер температур (Цельсий - Фаренгейт) #16
Цитата Сообщение от Rube Посмотреть сообщение
Мне кажется цвет нужен другой, оранжевый как-то не смотрится, приложение то серьезное.
Глядя на аскера, розовенький - будет в самый раз
Hedd
13 / 13 / 2
Регистрация: 21.01.2015
Сообщений: 131
10.02.2015, 14:35     Конвертер температур (Цельсий - Фаренгейт) #17
Rube, Моя первая мысль была, что экран полностью выделен, такой же цвет на моем аппарате.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2015, 09:23     Конвертер температур (Цельсий - Фаренгейт)
Еще ссылки по теме:

Конвертер цельсий в фаренгейт и наоборот - Java SE
По заданию должен был написать код, который будет переводить Фаренгейт в Цельсий и наоборот, вроде написал, но что-то все равно не так,...

Конвертер Цельсий/Фаренгейт, необходимо устранить ошибки - Lazarus
1) не выводит дробные значения (ошибку выдает) 2) при очистке график не изменяется.

Фаренгейт и Цельсий - C++
Друзья! В книге по С++ есть програмка вывода таблицы температур по фаренгейту и цельсию. Запускаю ее в MS Visual C++ 2008. Вот...

Функция Цельсий и Фаренгейт - C++
Есть задача: Напишите следующие функции:  Функция celsius, которая возвращает температуру по Цельсию, эквивалентную температуре по...

Ошибки - цельсий в фаренгейт - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void Filework(float* r,...


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

Или воспользуйтесь поиском по форуму:
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 42
11.02.2015, 09:23  [ТС]     Конвертер температур (Цельсий - Фаренгейт) #18
Два дня не могла выйти в нэт. Разобралась сама в коде.
Всем спасибо за советы.
Yandex
Объявления
11.02.2015, 09:23     Конвертер температур (Цельсий - Фаренгейт)
Ответ Создать тему
Опции темы

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