Как перезаписать значение в тексте редактирования - PullRequest
0 голосов
/ 23 декабря 2011

В моем приложении есть текст редактирования, который принимает только цифры.По умолчанию оно установлено в 0.Но когда я вхожу в некоторые номера, я хочу перезаписать начальный 0 слева.Теперь у меня возникли проблемы с edittext.Например, когда я вставляю 1, я хочу, чтобы оно равнялось 1, а не 01. Мой код выглядит как

    value = (EditText)findViewById(R.id.value);
    value.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) 
        {   
            if(arg0.length()==0)
            {
                value.setText("0");
                int i = value.getText().length();
                value.setSelection(i);
            }
        }

        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub
            }

        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
        }
    });

Как я могу этого достичь?или это возможно?

Ответы [ 5 ]

3 голосов
/ 23 декабря 2011

Вы можете установить android:hint в своем XML-файле.

Например,

<EditText
android:id="@+id/value"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="0"/>
2 голосов
/ 23 декабря 2011

Есть много вариантов, чтобы выполнить то, что вы ищете. Помимо уже упомянутых, я бы сказал, что атрибут EditText android:selectAllOnFocus="true" может стоить посмотреть. Это удобно для значения по умолчанию и в то же время достаточно удобно для пользователя, поскольку изменение значения не требует «возврата».

0 голосов
/ 23 декабря 2011

вместо использования value.setText ("0");используйте value.setHint ("0");

0 голосов
/ 23 декабря 2011

Используйте метод setHint (int) для начального отображения 0.Так что, когда пользователь вводит что-то, оно автоматически очищается, и вы можете получить желаемый текст.

0 голосов
/ 23 декабря 2011

Вы можете изменить строку на пустую в вызове функции beforeTextChanged и оставить onTextChanged без изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...