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

Автоматическая замена символов - Android

Восстановить пароль Регистрация
 
Vladulka
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 73
04.09.2016, 13:38     Автоматическая замена символов #1
Есть EditText в котором вводятся цифры и буквы. Необходимо программно найти в нем русские буквы и заменить их на английские
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2016, 13:38     Автоматическая замена символов
Посмотрите здесь:

Android Замена цвета Background-а на заданный
Автоматическая отправка отчетов по mail-smtp Android
Android Замена элемента в ListView
Android Замена кнопки на задержку
Android Замена jdk в eclipse
Android Чтение русских символов. Отрицательные значения у символов
Замена фрагмента из другого класса Android
Замена флеш для андроид приложения Android
Android Положение лица и его замена
Замена изображения в imageview по нажатию Android
Android Не создается автоматическая активити
Автоматическая прокрутка ScrollView Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,810
Завершенные тесты: 1
04.09.2016, 14:30     Автоматическая замена символов #2
подробнее нельзя написать?

Добавлено через 35 минут
во-первых непонятно когда делать замену - во время ввода или потом, когда поле будет терять фокус например
во-вторых вообще непонятно с заменой - количество букв в алфавитах разное
ExFau$t
55 / 55 / 4
Регистрация: 08.05.2012
Сообщений: 448
04.09.2016, 14:55     Автоматическая замена символов #3
Vladulka, создай в ресурсах массивы алфавитов так, чтобы каждой русской букве соответствовало значение латиницы, то есть два массива с 33мя элементами. Потом ставишь на эдит addTextChangedListener, если введенный символ находится в массиве русском - Replace() элементом массива из английского.
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,810
Завершенные тесты: 1
04.09.2016, 15:17     Автоматическая замена символов #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
фильтром проще
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
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputFilter;
import android.text.Spanned;
import android.widget.EditText;
 
import java.util.HashMap;
import java.util.Map;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText editText = (EditText) findViewById(R.id.editText);
        if (editText != null) editText.setFilters(new InputFilter[]{filter});
    }
 
    private final InputFilter filter = new InputFilter() {
        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            return map.get(source.charAt(0));
        }
    };
 
    // транслитерацию выбирал наугад, но это другой вопрос
    private final static Map<Character, String> map = new HashMap<Character, String>() {
        {
            put('q', "ку");
            put('w', "в");
            put('e', "е");
            put('r', "р");
            put('t', "т");
            put('y', "и");
            put('u', "у");
            put('i', "и");
            put('o', "о");
            put('p', "п");
            put('a', "а");
            put('s', "с");
            put('d', "д");
            put('f', "ф");
            put('g', "г");
            put('h', "х");
            put('j', "ж");
            put('k', "к");
            put('l', "л");
            put('z', "з");
            put('x', "кс");
            put('c', "ц");
            put('v', "в");
            put('b', "б");
            put('n', "н");
            put('m', "м");
            // и так далее - заглавные буквы
        }
    };
}
Добавлено через 10 минут
даже немного не так, метод filter
Java
1
2
3
4
5
6
        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            String s = null;
            if (!TextUtils.isEmpty(source)) s = map.get(source.charAt(0));
            return s;
        }
Vladulka
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 73
04.09.2016, 17:10  [ТС]     Автоматическая замена символов #5
Спасибо большое!
Yandex
Объявления
04.09.2016, 17:10     Автоматическая замена символов
Ответ Создать тему
Опции темы

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