Получение значений обратного вызова Editext OnSelectionChange (int selStart, int selEnd) в MainActivity и установка его в TextView - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть EditText в моей MainActivity, и я хочу получить позицию курсора редактируемого текста. У меня есть подкласс edittext и переопределенный ниже метод.

@override
protected void onSelectionChanged(int selStart, int selEnd) {
   OnSelectionChangedListener LISTENER = new MainActivity();
   LISTENER.update_pos(selStart, selEnd);
   super.onSelectionChanged(selStart, selEnd);
}

interface OnSelectionChangedListener {
  void update_pos(int selStart, int SelEnd);
}

Я использовал интерфейс и получил значения edittextselStart и selEnd в My MainActivity, но я хочу установить значения в TextView при каждом изменении выбора

1 Ответ

2 голосов
/ 13 апреля 2019

Это должно сработать:

public class CursorEditText extends AppCompatEditText {

    private OnSelectionChangedListener mListener;

    public CursorEditText(Context context) {
        super(context);
    }

    public CursorEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CursorEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public void setOnSelectionChangedListener(OnSelectionChangedListener onSelectionChangedListener) {
        mListener = onSelectionChangedListener;
    }

    @Override
    protected void onSelectionChanged(int selStart, int selEnd) {

        if (mListener != null)
             mListener.onSelectionChanged(selStart, selEnd);

        super.onSelectionChanged(selStart, selEnd);

    }

    public interface OnSelectionChangedListener {

        void onSelectionChanged(int selStart, int selEnd);

    }

}

Затем в вашей деятельности реализуйте OnSelectionChangedListener и вызовите:

 yourEditTextReference.setOnSelectionChangedListener(this);

Этот метод должен быть реализован в вашей деятельности сейчас:

@Override
public void onSelectionChanged(int selStart, int selEnd) {
    yourTextView.setText(String.valueOf(selStart));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...