У меня есть собственный Entry Renderer в Android, и я реализовал событие BeforeTextChanged, чтобы получить текст, который будет введен, но он не возвращает этот текст.
Я реализовал двумя разными способами:
Сначала реализуем ITextWatcher классом, а затем переопределяем упомянутое событие (помогая этой ссылке):
void ITextWatcher.BeforeTextChanged(ICharSequence s, int start, int count, int after) { var test1 = new string(s?.ToArray()); var test2 = Control?.Text; SpannableString spannableString = new SpannableString(s); BackgroundColorSpan backgroundSpan = new BackgroundColorSpan(Color.Blue); spannableString.SetSpan(backgroundSpan, start, start + count, SpanTypes.ExclusiveExclusive); var test3 = spannableString; }
Второй способ:
Control.BeforeTextChanged += (sender, args) => { var test1 = new string(args?.Text.ToArray()); var entry = sender as EditText; var test2 = entry?.Text; var test3 = Control?.Text; };
Но ни один из них не вернет текст, который вот-вот будет введен. Я хочу получить доступ к этому тексту и только при некоторых обстоятельствах разрешить его вставку. Я не хочу использовать Behavior, так как он мне не подходит.