Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Редактирование степени числа

#java #android #xml #edittext


Как замечательно что есть такой форум на котором можно задавать вопросы. Потому что
голову уже сломал.

Нужно сделать следующие











Это Item в ListView в нем EditText и ниже с выравниваем по правому краю TextView

Речь идет о EditText как в нем реализовать данный функционал.
Что бы можно было динамически двигаться по выражению и если это степень то возносить
курсор к степени и была возможность ее редактировать.

Нужно что бы при нажатии кнопки степени.
Курсор поднимался в верхнюю половину пользователь вводил степень а дальше мог спустится
к выражению и дописать его.

Это возможно реализовать в одном EditText или для степени динамически создается EditText.
Как вообще дать возможность юзеру записать число в степень?

Как вообще это можно сделать?

Спасибо огромное.

UPDATE

Получилось спасибо, большое.



UPDATE 2

Как поднять курсор в степень как на 3-4 рисунке? Есть идеи?

UPDATE 3



Реализовал кнопку возведения в квадрат. Ну такое на самом деле не знаю насколько
это лучший способ

Сейчас осталось сделать 

1.перемещение курсора внутрь степени 

2.динамическое добавление туда  

кому интересно репа тут - commit Implemented Sqr button
    


Ответы

Ответ 1



Как вариант можно воспользоваться классом HTML для форматирования введенного текста: private static CharSequence formatPower(String source) { int powerPosition = source.indexOf("E"); if (powerPosition == -1) { return source; } String numberValue = source.substring(0, powerPosition); String powerValue = source.substring(powerPosition + 1); return fromHtml(numberValue + "" + powerValue + ""); } private static Spanned fromHtml(String html) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY); } else { return Html.fromHtml(html); } } и дальше уже делать так: mEditText.setText(formatPower("1.0E20")); нашел этот способ в сети, надеюсь он вам поможет в решении вашей проблемы.

Комментариев нет:

Отправить комментарий