Курсорды EditText соңына жылжытыңыз ба?

Кейбір мәтінді EditText ішіне алмастырамын, содан кейін курсорды ағымдағы мәтін енгізудің соңына жылжытқым келеді. Мүмкін, ол жұмыс істейді, мен қайтадан кірісе бастағанда, курсорды редактордың соңында көруге болады, бірақ ол әлі жыпылықтайды/жыпылықтайды. Курсорды қайтадан жыпылықтай бастағандықтан, EditText-ге қайта тиіп кетуім керек. Мен бұл дұрыс емес пе?

editText.setSelection(editText.getText().length()-1);

Рахмет

16

3 жауаптар

Мен қолданатын бір әдіс мәтінді «» белгілеп, содан кейін қалаған бүкіл жолды қосқан болатын.

яғни,

String newtext = editText.getText().toString() + "the new text";
editText.setText("");
editText.append(newtext);

Бұл курсорды маған керекті жерге орналастырады.

41
қосылды
Өкінішке орай, барлық сынақтарды қалпына келтіре алмаймын, себебі маған қолдау көрсету керек. Жоғарыда көрсетілгеннен кейін жүгіргі қайтадан сізге жыпылықтайды ба?
қосылды автор user291701, көзі
Ия, бұл шешім маған жұмыс істеді.
қосылды автор tarrant, көзі
EditText et = (EditText)findViewById(R.id.inbox);
et.setSelection(et.getText().length());

екінші тәсіл

Stringite мәнін ағымдағы edittext мәніне қосатын және курсорды мәннің соңына орналастыратын gioitext үшін қосымша деп аталатын функция бар. Сіз жолдың мәнін ағымдағы uniitext мәні ретінде қолдануға және append() шақыруыңызға болады;

myedittext.append("current_this_edittext_string"); 
15
қосылды
Бірінші тәсіл - ұқыпты
қосылды автор Pooya, көзі
Рақмет сізге. Екі тәсіл де маған жұмыс істейді.
қосылды автор John Ward, көзі
Бірінші тәсіл жұмыс істейді!
қосылды автор Yashovardhan, көзі

Пайдаланушыны Мәтінді өңдеу ішіндегі бүкіл мәтінді өзгертуге мүмкіндік беру үшін (пайдаланушыға ыңғайлы болу үшін)

editText.selectAll(); //user can delete the whole text at one go
editText.requestFocus();
0
қосылды