gpt4 book ai didi

java - 为什么 EditText.getText() 的 Xamarin 等价物返回一个字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:34 24 4
gpt4 key购买 nike

我是新的 Xamarin.Android 开发人员。我最近正在阅读一些在派生类中使用 EditText 方法的 Java 代码。派生类的方法之一如下所示:

private void checkMatchingBracket(int paramInt)
{
getText().removeSpan(this.openBracketSpan);
getText().removeSpan(this.closeBracketSpan);
...
}

这让我感到困惑,因为我认为 getText() 返回了一个 String,因为 EditText.Text 属性是一个 string 在这个类的 Xamarin 对应物中。然而,这种情况并非如此; getText() 似乎返回一个 Editable ,它看起来像一个可变字符串类型,提供附加功能,例如将“跨度”附加到某些文本区域(SpannableString?)。我的猜测是 Xamarin 返回的 string 已经从这个 Editable 的文本中复制过来,所以我不能真正修改原始的 Editable并使用其 API。

我说的对吗?是否因为我使用的是 Xamarin 而无法在此处访问原始 Editable

编辑:我想要做的具体事情是在 EditText 中为文本区域着色。我找到了 this answer它使用跨度来实现这一点:

TextView textView = (TextView)findViewById(R.id.mytextview01);
Spannable WordtoSpan = new SpannableString("partial colored text");
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(WordtoSpan);

但是,Xamarin 的 API EditText.Text.set 只接受 .NET string,这显然没有颜色或“跨度”的概念。

最佳答案

您正在寻找 EditableText 属性:

var editable = aTextView.EditableText;
editable?.RemoveSpan(aSpanObject);

回复:https://developer.xamarin.com/api/property/Android.Widget.TextView.EditableText/

Return the text the TextView is displaying as an Editable object. If the text is not editable, null is returned.

关于java - 为什么 EditText.getText() 的 Xamarin 等价物返回一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com