Xamarin:如何通过编程设置TextView的文本

3
这可能是我的错误或理解不足,但我现在非常困惑。我正在尝试以编程方式设置Xamarin Android应用程序中的TextView。这是我的代码:
TextView currentCharacterName = FindViewById(Resource.Id.characterName); currentCharacterName.SetText("test");
不幸的是,这并不起作用,因为我得到了错误“Argument 1: cannot convert from 'string' to 'int'”。在阅读可用于SetText的方法后,我注意到我尝试调用的方法需要一个ResId。我真的不明白为什么我需要一个ResId来修改TextView的文本。
我尝试在Google上搜索答案,并找到了2014年的这个答案,该答案与我的问题完全相同。解决方案是使用Text()方法而不是Set文本视图。不幸的是,当我尝试此解决方案时,我会收到错误“Non-invocable member 'TextView.Text' cannot be used like a method”。当我尝试检查Text方法描述时,我看到“string TextView {get/set} To be added.”
这是否意味着还没有实现设置TextView文本的功能?我真的不愿意相信这一点,因为我惊讶于像Xamarin这样的大型框架甚至没有针对设置TextView文本这样简单的事情的get/set函数。我觉得我的问题有一个非常简单的解决方案,但我似乎找不到它。

通常情况下,Java风格的get *和set *方法会被替换为C#风格的属性(Properties)。因此,getText()和setText()将被一个名为Text的单一属性所代替。 - Jason
2个回答

7

测试以下代码:

TextView currentCharacterName = FindViewById<TextView>(Resource.Id.characterName);
currentCharacterName.Text = "Your Text";

7

TextView.SetText(X)允许你从资源ID设置文本:

currentCharacterName.SetText(Resources.Id.MyString);

你需要查找的是 Text 属性:
currentCharacterName.Text = "test";

Xamarin: TextView类

Android.Widget.TextView.Text属性

语法:

public String Text { get; set; }

注:该属性表示TextView(文本视图)中显示的文本内容。

啊,我看到了我的错误!我写成了Text("test")而不是Text = "test"!非常感谢你,那真是我太傻了。 - Naly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接