2016-05-06 64 views
0

這可能是我的錯誤或缺乏理解,但我現在很困惑。我試圖以編程方式在我的Xamarin Android應用程序中設置TextView。這裏是我的代碼:Xamarin:以編程方式設置TextView的文本

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

不幸的是,這不起作用,因爲我收到錯誤「參數1:無法從'字符串'轉換爲'int'」。在閱讀了SetText的可用方法之後,我注意到我試圖調用的方法需要ResId。我不明白爲什麼我需要ResId來修改TextView的文本。

我試着在谷歌搜索答案,並且我遇到了2014年的this answer,與我的確有同樣的問題。解決方案是使用Text()方法來設置TextView。不幸的是,當我嘗試這個解決方案時,出現錯誤「非可調用成員」TextView.Text'不能像方法一樣使用「。當我嘗試檢查Text方法描述時,我看到「string TextView {get/set}要被添加。」

這是否意味着沒有實現尚未設置TextView的文本?我真的不願意相信這一點,因爲它讓我感到困惑,像Xamarin這樣的大型框架甚至沒有像設置TextView文本那樣簡單的獲取/設置函數。我覺得我的問題有一個非常簡單的解決方案,但我似乎無法找到它。

+0

一般Java的方式獲得*和*設置方法被替換爲C#的風格屬性。所以getText()和setText()將被一個名爲Text的Property所取代。 – Jason

回答

3

TextView.SetText(X)允許您設置從一個資源ID文本:

currentCharacterName.SetText(Resources.Id.MyString); 

您正在尋找Text屬性:

currentCharacterName.Text = "test"; 

Xamarin:TextView class

Android.Widget .TextView.Text屬性

語法:

public String Text {get;組; }

+0

啊,我看到了我的錯誤!我寫了Text(「test」)而不是Text =「test」!非常感謝你,這真的很愚蠢。 – Naly

1

測試此代碼:

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