【问题标题】:Xamarin: Setting text for a TextView programmaticallyXamarin:以编程方式为 TextView 设置文本
【发布时间】:2016-05-06 01:21:38
【问题描述】:

这可能是我的一个错误或缺乏理解,但我现在很困惑。我正在尝试以编程方式在我的 Xamarin Android 应用程序中设置 TextView。这是我的代码:

TextView currentCharacterName = FindViewById(Resource.Id.characterName); currentCharacterName.SetText("test");

不幸的是,这不起作用,因为我收到错误“参数 1:无法从 'string' 转换为 'int'”。在阅读了 SetText 的可用方法后,我注意到我试图调用的方法需要一个 ResId。我真的不明白为什么我需要 ResId 来修改 TextView 的文本。

我尝试在 Google 上搜索答案,发现 this answer 从 2014 年开始遇到与我完全相同的问题。解决方案是使用 Text() 方法来设置 TextView。不幸的是,当我尝试此解决方案时,我收到错误“不可调用的成员'TextView.Text'不能像方法一样使用”。当我尝试检查 Text 方法描述时,我看到“要添加的字符串 TextView {get/set}。”

这是否意味着还没有实现来设置 TextView 的文本?我真的不愿意相信这一点,因为像 Xamarin 这样的大框架甚至没有像设置 TextView 的文本这样简单的事情的 get/set 函数,这让我感到困惑。我觉得我的问题有一个非常简单的解决方案,但我似乎找不到它。

【问题讨论】:

  • 一般 java 风格的 get* 和 set* 方法被 C# 风格的 Properties 替换。因此 getText() 和 setText() 将被一个名为 Text 的属性替换。

标签: android xamarin xamarin.android textview


【解决方案1】:

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

currentCharacterName.SetText(Resources.Id.MyString);

您正在寻找Text 属性:

currentCharacterName.Text = "test";

Xamarin:TextView class

Android.Widget.TextView.Text 属性

语法:

公共字符串文本 { 获取;放; }

【讨论】:

  • 啊,我看到了我的错误!我写了 Text("test") 而不是 Text = "test"!非常感谢,我真是太傻了。
【解决方案2】:

测试这段代码:

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

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 2018-02-02
    • 2013-11-29
    • 2017-10-20
    • 2016-01-08
    • 2012-10-10
    • 2011-03-09
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多