Edit Text свойства

Интерфейс, диалоги, темы, стили, меню
Ответить
Andrey90
Сообщения: 11
Зарегистрирован: 18 сен 2013, 12:05

Edit Text свойства

Сообщение Andrey90 » 18 сен 2013, 12:20

Сейчас пишу одну программку. Интерфейс программы простой:
- Есть 8шт EditText(2шт имеют свойство Visible, а остальные -inVisible)
- Есть 1 кнопка "Подсчет"
- Есть 1 кнопка "Добавить"
Кнопка "добавить" при каждом последующем щелчке изменяет свойство EditText на Visible.
Кнопка "Подсчет" Выполняет арифметическое действие.
Так вот. вся проблем у меня заключается в следующем:
Вот есть математическая операция (EditText1=r1, EditText2=r2 и так далее).

Код: Выделить всё

tvRes=r1+r2+r3+r4+r5+r6+r7+r8;
TvRes-обычный текстВью для вывода результата.
При таком раскладе приложение крашится, т.к. если ввести числа только в EditText Visible, то арифметическая операция обращается еще и к EditText InVisible.
Как это исправить? Мне надо чтобы эта арифметическая операция обходила стороной невидимые эдиттексты, а когда невидимые = видимым учитывала их при расчете. Как реализовать?
Я хотел невидимые Эдиттекст приравнять к нулю, но как оказалось программа считает что они во все удалены и я обращаюсь не понять к чему...

Kruler
Сообщения: 28
Зарегистрирован: 27 авг 2013, 13:02

Re: Edit Text свойства

Сообщение Kruler » 18 сен 2013, 21:23

Andrey90 писал(а): Я хотел невидимые Эдиттекст приравнять к нулю, но как оказалось программа считает что они во все удалены и я обращаюсь не понять к чему...

Код: Выделить всё

EditText ed1 = (EditText)findViewById(R.id.editText1);
		EditText ed2 = (EditText)findViewById(R.id.editText2);
		ed1.setText("1");
		ed2.setText("2");
		ed2.setVisibility(View.INVISIBLE);
		
		int x = Integer.valueOf(ed1.getText().toString())+Integer.valueOf(ed2.getText().toString());
		Log.d("LOG_TAG", "x = "+x);
09-18 18:20:41.746: D/LOG_TAG(3981): x = 3
я хз, где у тебя программа обращается непонятно к чему ;)

Scotik
Сообщения: 19
Зарегистрирован: 14 авг 2013, 12:28

Re: Edit Text свойства

Сообщение Scotik » 19 сен 2013, 15:15

а я думаю просто надо ввести какой нить checker пусть будет

Код: Выделить всё

private int checker = 0

Код: Выделить всё

void OnClick(View v) {
switch(v.getId()) {
case R.id.добавить:
    EditText3.setVisibility(View.VISIBLE);
    EditText4.setVisibility(View.VISIBLE);
    checker ++;
    break;
case R.id.Подсчёт:
     if (checker ==0) {
         tvRes = r1+r2;
     } else if (checker == 1) {
        tvRes = r1+r2+r3+r4;
     }
    и т.д.
}
}
либо с помощь это же чекера можно сделать хитрее, сделать массив из EditText и смотреть тоже по нему но пробегать по циклу for, только надо чтобы checker начинался не с 0, а с 1

Код: Выделить всё

private int checker = 1;
private EditText[] rMassive = new EditText[8];
дальше в onCreate мы находим их

Код: Выделить всё

protected vioid onCreate(Bundle savedInstanceState) {
...
rMassive[0] = (EditeText) findViewById(R.id.r1);
и тд...
также при нажатие на кнопку "Добавить" прибавляем +1 а уже при нажатии на кнопку расчёт делаем так

Код: Выделить всё

case R.id.подсчёт:
    for (int i=0, length= 2*checker ; i<length; i++) {
        tvRes += rMassive[i];
    }
и тогда он у тебя считает только те, которые видимые, ну там самое главное указать правильные id для EditText и не поперепутать, а то также свалиться

Andrey90
Сообщения: 11
Зарегистрирован: 18 сен 2013, 12:05

Re: Edit Text свойства

Сообщение Andrey90 » 19 сен 2013, 18:57

Благодарю! Попробую завтра сделать и отпишусь...

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Edit Text свойства

Сообщение Foenix » 20 сен 2013, 09:01

Что-то я не пойму что вы изобретаете тут?

Код: Выделить всё

if (myView.getVisibility() == View.VISIBLE) {
    // Если видимо что-то делаем
} else {
    // Если невидимо
}
Это же нужно проверить?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

MaxWhite
Сообщения: 4
Зарегистрирован: 25 сен 2013, 22:01

помогите разобраться с Edit Text

Сообщение MaxWhite » 26 сен 2013, 22:16

Уже который день не могу разобраться, все мозги поплавил) написал калькулятор, который выполняет последовательно действия - берет число, отнимает от него 10% и показывает, потом уже от этого числа отнимает 5% и показывает, а от этого отнимает 2.11% и показывает конечный результат. (например 1000 - 10% = 900; 900 - 5% = 855; 855 - 2,11% = 835) все работает. НО! в прошлом примере было одно поле EditText вводил в него ,а ответы выводились в TextViewЫ, но теперь хочу модифицировать и сделать так чтобы можно было вводить еще в два поля (в тоже время в них выводится ответ), когда они пусты, но не могу реализовать так, чтобы получать данные и считать ниже, например ввел 900 во второе поле - программа считает дальше -5%, потом -2,11% и выводит конечный результат. стоит проверка на пустоту первого поля и никак не получается, убираю проверку на пустоту - падает при нажатии кнопки "Рассчитать!" и пустых полях. даже не знаю в какую сторону думать. надеюсь, понятно написал))
Вложения
так было изначально и тут все работает
так было изначально и тут все работает
1 версия.jpg (43.29 КБ) 5161 просмотр
так хочу сделать
так хочу сделать
2 версия.jpg (40.26 КБ) 5161 просмотр
Последний раз редактировалось MaxWhite 28 сен 2013, 15:19, всего редактировалось 2 раза.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Edit Text свойства

Сообщение Foenix » 26 сен 2013, 22:31

что значит "падает", ничего не понятно - логи нужно приводить, код соответсвующий..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

MaxWhite
Сообщения: 4
Зарегистрирован: 25 сен 2013, 22:01

Re: Edit Text свойства

Сообщение MaxWhite » 28 сен 2013, 15:38

не это главное, как реализовать одновременно и ввод и вывод текста в EditText, в зависимости от других полей? выше есть пара скринов, как было и как хочется)

Ответить