Как динамически выделять текст из EditText OnClickListener? - PullRequest
1 голос
/ 03 февраля 2012

Я хочу использовать функцию выбора текста для Android на OnClickListener, а не onlongclicklistener. Есть какой-либо способ сделать это? Кто-нибудь может мне помочь в этом? Спасибо

Ответы [ 3 ]

4 голосов
/ 03 февраля 2012

с xml:

android:selectAllOnFocus="true"

с кодом (опция 1):

    yourEditText.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //((EditText)v).selectAll();
            ((EditText)v).setSelection(startValue, stopValue);
        }
   });

с кодом (опция 2):

yourEditText.setOnFocusChangedListener(new OnFocusChangedListener(){
    @Override
    public void onFocusChange(View v, boolean hasFocus){
        if (hasFocus){
            //((EditText)v).selectAll();
            ((EditText)v).setSelection(startValue, stopValue);
        }
    }
});
0 голосов
/ 03 февраля 2012

Совершенно другой подход - попытаться вызвать executeLongClick из обработчика onClick вашего EditText. Это может позволить вам использовать стандартную функцию длинных щелчков, но вызывать ее с помощью onClick.

theEditText.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        EditText editText = (EditText)view;
        editText.performLongClick();
    }
});
0 голосов
/ 03 февраля 2012

Этот ответ дает вам несколько вариантов, если вы хотите выделить весь текст.

Если нет, то используйте onclicklistener и вызовите setSelection для вашего EditText.

EDIT:

theEditText.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        EditText editText = (EditText)view;
        editText.setSelection(editText.getText().length()-1); // selects all the text
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...