Android EditText вставка - PullRequest
       1

Android EditText вставка

6 голосов
/ 09 января 2012

Как вставить символы в середину поля EditText?
Я делаю калькулятор, который может принимать строковое выражение типа «3 * (10 ^ 2-8)».Я использую поле EditText, чтобы сделать строку с использованием XML следующим образом:

EditText

android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/label"
android:text="@string/testString1"
android:background="@android:drawable/editbox_background"

, а затем в своей деятельности я говорю:

entry = (EditText)findViewById(R.id.entry);
entry.setText("blablahblah");
entry.setSelection(3);

Теперь у меня есть поле EditText с курсором, мигающим после третьего символа в строке.Как мне вставить туда символ, чтобы он правильно сказал «бла-бла»?

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Метод getText () виджета EditText возвращает объект, который реализует интерфейс Editable. Для этого объекта вы можете вызвать метод insert () , чтобы вставить текст в определенную позицию.

Я узнал об этом, прочитав документацию, но никогда не использовал это сам. Но для ваших нужд, чтобы вставить символ в выбранную позицию в EditText, должно работать следующее:

Editable text = entry.getText();
text.insert(entry.getSelectionStart(), "h");
0 голосов
/ 09 января 2012

Допустим, у вас есть строка с именем str, которая содержит «blablahblah», и вы хотите сделать ее «blahblahblah», вы можете сделать следующее:

String newString = str.substring(0, 3) + "h" + str.substring(3);

Взять первые 3, добавить новую буквуПоместите все остальное.Таким образом, вы можете взять строку из EditText, изменить ее следующим образом, а затем поместить новую строку в качестве нового значения EditText.

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