Java 为什么与EditText.getText()等价的Xamarin函数返回字符串?

Java 为什么与EditText.getText()等价的Xamarin函数返回字符串?,java,c#,android,xamarin,xamarin.android,Java,C#,Android,Xamarin,Xamarin.android,我是新的Xamarin,Android开发者。我最近在阅读一些Java代码,这些代码在派生类中使用了EditText方法。其中一个派生类的方法如下所示: private void checkMatchingBracket(int paramInt) { getText().removeSpan(this.openBracketSpan); getText().removeSpan(this.closeBracketSpan); ... } 这让我很困惑,因为我认为get

我是新的Xamarin,Android开发者。我最近在阅读一些Java代码,这些代码在派生类中使用了
EditText
方法。其中一个派生类的方法如下所示:

private void checkMatchingBracket(int paramInt)
{
    getText().removeSpan(this.openBracketSpan);
    getText().removeSpan(this.closeBracketSpan);
    ...
}
这让我很困惑,因为我认为
getText()
返回了一个
字符串
,因为
EditText.Text
属性是这个类的Xamarin对应项中的
字符串。然而,事实并非如此;似乎
getText()
返回一个字符串,它看起来像一个可变的字符串类型,提供附加功能,例如将“span”附加到文本的某些区域(?)。我的猜测是,Xamarin返回的
字符串已从该
可编辑的
文本中复制过来,因此我无法真正修改原始
可编辑的
并使用其API

我说得对吗?因为我使用的是Xamarin,所以无法在此处访问原始的
可编辑的

edit:我想做的具体事情是在
EditText
中对文本的各个区域进行着色。我找到了使用跨距来实现这一点的方法:

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
字符串,它显然没有颜色或“跨度”的概念。

您正在寻找
EditableText
属性:

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

返回TextView显示为可编辑对象的文本。如果文本不可编辑,则返回null