Страница 1 из 1
Работа с EditText
Добавлено: 29 сен 2013, 20:45
АндрЕвгений
Здравствуйте!)
Подскажите, пожалуйста, как правильно сделать запрет на вывод в поле EditText отрицательных значений?
Re: Работа с EditText
Добавлено: 30 сен 2013, 09:18
adarash
АндрЕвгений писал(а):Здравствуйте!)
Подскажите, пожалуйста, как правильно сделать запрет на вывод в поле EditText отрицательных значений?
Вот как-то так.
Код: Выделить всё
edittext.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if(Integer.parseInt(s.toString())<=0){
edittext.setText("");
//или то действие, которое ты сам захочешь
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
Re: Работа с EditText
Добавлено: 30 сен 2013, 09:59
rezak90
adarash писал(а):АндрЕвгений писал(а):Здравствуйте!)
Подскажите, пожалуйста, как правильно сделать запрет на вывод в поле EditText отрицательных значений?
Вот как-то так.
Код: Выделить всё
edittext.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if(Integer.parseInt(s.toString())<=0){
edittext.setText("");
//или то действие, которое ты сам захочешь
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
эпик фейл будет если я введу "Hello world"
Re: Работа с EditText
Добавлено: 30 сен 2013, 10:13
adarash
rezak90 писал(а):adarash писал(а):АндрЕвгений писал(а):Здравствуйте!)
Подскажите, пожалуйста, как правильно сделать запрет на вывод в поле EditText отрицательных значений?
Вот как-то так.
Код: Выделить всё
edittext.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if(Integer.parseInt(s.toString())<=0){
edittext.setText("");
//или то действие, которое ты сам захочешь
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
эпик фейл будет если я введу "Hello world"
Если в свойствах edittext будет прописано android:inputType="number", то эпик фэла не бодит ибо вызовется цифровая клавиатура и не будет возможности вводить текстовые символы . В задаче же явно поставлено условие про отрицательные значения.
Re: Работа с EditText
Добавлено: 30 сен 2013, 15:48
АндрЕвгений
Спасибо!)
Вставил я это в код, выпала ошибка "Syntax error on token "addTextChangedListener", = expected after this token". Что не так?
Это единственный способ? Просто, у меня 11 активити и в каждой по 11 EditText, где одно поле предназначено для ввода значения, а остальные - только для вывода результата.
Re: Работа с EditText
Добавлено: 30 сен 2013, 21:34
АндрЕвгений
Ошибку в коде нашёл. Но,когда запускаю приложение и ввожу число, оно неожиданно завершается. вот ссылка на приложение, гляньте
http://play.google.com/store/apps/detai ... onofattack
Re: Работа с EditText
Добавлено: 01 окт 2013, 08:56
adarash
АндрЕвгений писал(а):Спасибо!)
Вставил я это в код, выпала ошибка "Syntax error on token "addTextChangedListener", = expected after this token". Что не так?
Это единственный способ? Просто, у меня 11 активити и в каждой по 11 EditText, где одно поле предназначено для ввода значения, а остальные - только для вывода результата.
Прошу прощения, один символ забыл.
Код: Выделить всё
edittext.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (Integer.parseInt(s.toString()) <= 0) {
edittext.setText("");
// или то действие, которое ты сам захочешь
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
По поводу 11 активити. Создай один класс расширяющий TextWatcher отдельно в проекте и применяй его всем.
Re: Работа с EditText
Добавлено: 01 окт 2013, 09:37
АндрЕвгений
Вы ещё не видели, что из себя представляет приложение? Посмотрите, когда, после применения метода,я запускаю проект, при попытке ввести значение, приложение неожиданно завершается... А нельзя поставить такое ограничение в .xml,так же, как, например, android:inputType="number"?
Re: Работа с EditText
Добавлено: 01 окт 2013, 10:41
adarash
не знаю, как тебе, а мне в твое приложение(с телефона) не удается ввести отрицательное значение вообще.
Re: Работа с EditText
Добавлено: 01 окт 2013, 15:23
АндрЕвгений
Так, всё правильно!) В свойствах edittext прописано
android:inputType="number"... Попробуй ввести,скажем, 10 попрошаек, далее увидим,что всех остальных -4, –7, –10 и так далее... мне нужно,что бы выводились только положительные значения! А значения со знаком «—» заменялись на «0» или фразу, например, «на данный момент не требуется» ... Просто пользователи часто не понимают и жалуются на этот «—».
Теперь понятно чего я хочу? Запрет на ВЫВОД, а не на ввод. Запрет на ВВОД отрицательных значений я давно поставил)
Re: Работа с EditText
Добавлено: 01 окт 2013, 16:17
adarash
АндрЕвгений писал(а):Так, всё правильно!) В свойствах edittext прописано
android:inputType="number"... Попробуй ввести,скажем, 10 попрошаек, далее увидим,что всех остальных -4, –7, –10 и так далее... мне нужно,что бы выводились только положительные значения! А значения со знаком «—» заменялись на «0» или фразу, например, «на данный момент не требуется» ... Просто пользователи часто не понимают и жалуются на этот «—».
Теперь понятно чего я хочу? Запрет на ВЫВОД, а не на ввод. Запрет на ВВОД отрицательных значений я давно поставил)
Вот класс:
Код: Выделить всё
package com.example.testedittest;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
public class tw implements TextWatcher {
EditText et;
public tw(EditText et) {
this.et = et;
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
String str = s.toString().trim();
int i = Integer.parseInt(str);
if (i < 0) {
et.setText("0");
}
} catch (NumberFormatException e) {
et.setText("0");
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
}
вот как его присваивать:
Код: Выделить всё
et1.addTextChangedListener(new tw(et1));
et2.addTextChangedListener(new tw(et2));
ну и так далее, ты понял, что менять нужно. И все. Если будет отрицательное, то сразу же на 0 сменится.Пользуйся.
Блин, и не лень же мне было писать.
Re: Работа с EditText
Добавлено: 02 окт 2013, 06:14
АндрЕвгений
Заработало!!!) Благодарю вас за проявленное внимание)