Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > адаптация под самсунг


Автор: dorogoyIV 17.11.2007, 14:31
нацарапал обыкновенный телефонный справочник.
на мотороле работает.
на самсунге невозможно переключить язык ввода с английского на русский, на цифры (1 2 3 ...) и
знаки (= + / ...) хорошо переключается.
кто знает, как исправить?

Автор: dorogoyIV 24.11.2007, 10:35
вариантов нет  smile 
тогда может быть есть возможность переключить язык ввода из самого приложения?
если есть, как?

Автор: eugine_s 24.11.2007, 11:03
Может просто баг самого телефона? 

От этих "корейцев" можно ждать всего что угодно...

Как вариант самому реализовать модуль ввода символов?  smile 
Но тогда этот ввод нужно будет делать и для английский буков.

Автор: dorogoyIV 24.11.2007, 17:00
eugine_s, конечно и такая мысля была. типа тело глючное. теперь про самсунги я думаю, что они "гнусмасы"!!! 
теперь по делу: 
eugine_s, ты предлагаешь вводить латинские буквы, и переводить их в кириллицу?
для меня, для тебя, для посетителей этого форума это нормально. но не для других юзеров. 

Автор: eugine_s 24.11.2007, 19:57
Цитата(dorogoyIV @  24.11.2007,  17:00 Найти цитируемый пост)
ты предлагаешь вводить латинские буквы, и переводить их в кириллицу?
для меня, для тебя, для посетителей этого форума это нормально. но не для других юзеров.


Нет. Не так.

Я  предлагаю (повторяю: как вариант) эмулировать работу телефона по вводу символов, т.е. сейчас у тебя есть текстовое поле и ввод текста с клавиатуры телефона в него осуществляет виртуальная машина (она же и переключает язык ввода).

Я же тебе предлагаю самому сделать ввод букв на английском и русском языках, т.е. если выбран русский язык, то при быстром* нажатии на клавиатуре кнопки "2" один раз, то добавляется буква А, если два раза, то - Б, если три раза, то - В....

*под быстрым нажатием имеется ввиду промежуток времени между двумя нажатиями одной кнопки не больший, чем какая-то заданная величина. 

Автор: dorogoyIV 25.11.2007, 01:14
ну да, это вариант. и не очень сложный. надо будет описать такие буквы "ж, щ, ч, ...".
с остальными просто replace("s", "c").
я так думаю...  smile 
но это через ж...  smile 

представляешь этот метод?
примерно:
Код

public char convertLetter(char ch)
{
 if(ch=='s')
    ch='c';
 ... // и так много много раз
 return ch;
}

 smile  smile  smile 

Автор: dorogoyIV 25.11.2007, 13:42
предполагаю, что с этим методом будет очень медленно вводится строка для поиска.
ну в общем то не вижу других вариантов  smile .
спасибо eugine_s за наводку  smile .


Автор: eugine_s 25.11.2007, 14:43
Нет.Нет. И еще раз НЕТ.

Не надо приписывать мне лишнего (тем более такого).

Я НЕ ПРЕДЛАГАЛ никаких ТРАНСЛИТОВ.

Транслит плох тем, что его не все знаю, а из тех кто знает, что это такое не все правильно знаю его правописание (хотя если приложение только для себя, то можно обойтись транслитом).

Я предлагаю не легкий вариант, который можно реализовать одним методом.
Это как минимум будет целый класс MyTextField + свой контейнер MyForm для MyTextField нужен будет + слушатель клавиатуры (Хотя этот класс может входить в комплект MyForm)

Я же написал: нужно будет эмулировать работу JVM по вводу данных в текстовое поле с клавиатуры. Сейчас ты делаешь так: в объект типа Form (например form) добавляешь текстовое поле:
TextField tf = new TextField();
form.add(tf);
и все!! На этом твое участие в работе TextField заключается только в том, что когда будет нажата какая-то кнопка взять из tf текст и в случае если эта строка не пустая начать поиск.

Код

String textToFind = tf.getText() //или как там этот метод называется

if (textToFind != null && textToFind != "")
{
    startSearch(textToFind); //начать поиск строки
    //вывод результатов поиска.
}



Я предлагаю сделать это все самому,  ГРУБО ГОВОРЯ, на Canvas-e нарисовать прямоугольник(graphics.drawRect(x,y,w,h)) и сказать что этот прямоугольник - MyTextField и пусть пользователь сам введет в этот прямоугольник текст (и этот ввод должен ничем не отличаться от стандартного ввода в TextField). Для этого нужно будет сделать какое-то меню для этой кнопки, в этом меню должен быть выбор языка: английский, русский, китайский и т.д.
Если выбран русский язык, то буквы будут добавляться в эту строку ТОЛЬКО РУССКИЕ!!!! Никаких транслитов.
Например, если введено слово: "тест", то это значит, что пользователь нажал:
- три раза цифру 6 на клавиатуре телефона
- два раза цифру 3
- два раза цифру 6
//тут будет пауза, чтобы не получилось пять нажатий цифры 6
- три раза цифру 6


Автор: dorogoyIV 25.11.2007, 15:23
такая ситуация:
на телефоне при запуске моего приложения не включается русский язык.
поэтому:
ловлю букву при нажатии кнопки (естественно это будет латинская буква). // ??? так можно?
тут же запускаю свой метод convertLetter().
и в TextField ввожу уже русскую букву.
задача упрощается тем, что латинские буквы вообще не нужны (в справочнике русские фамилии).
поэтому в методе convertLetter() просто заменяю латинскую букву на русскую.

я думал так можно. ???

Автор: eugine_s 25.11.2007, 18:06
Цитата(dorogoyIV @  25.11.2007,  15:23 Найти цитируемый пост)
я думал так можно. ??? 


Нет так нельзя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)