我在 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,因为它不适合我的需要。