Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

(Android Xamarin) Get Resource string value instead of int

Im just starting to create a simple android app with the use of Xamarin using VS2012. I know there is a type of Resource just for strings. In my resource folder, i have an xml file like this:

<?xml version="1.0" encoding="utf-8"?> <resources>    <string name="RecordsTable">records</string>    <string name="ProjectTable">projects</string>    <string name="ActivitiesTable">activities</string> </resources> 

In my code, I want to use the values of those resources like:

string recordTable = Resource.String.RecordsTable; //error, data type incompatibility 

I know that Resource.String.<key> returns an integer so I cant use the code above. I am hoping that recordTable variable will have a value of records.

Is there a way I can use the value of those resource string for my code's string variables?

like image 786
raberana Avatar asked Apr 09 '13 08:04

raberana


2 Answers

try it as using Resources.GetString for getting string from string Resources

Context context = this; // Get the Resources object from our context Android.Content.Res.Resources res = context.Resources; // Get the string resource, like above. string recordTable = res.GetString(Resource.String.RecordsTable); 
like image 200
ρяσѕρєя K Avatar answered Sep 20 '22 10:09

ρяσѕρєя K


It's worth noting that you do not need to create an instance of Resources to access the resource table. This works equally well:

using Android.App;  public class MainActivity : Activity {     void SomeMethod()     {         string str = GetString(Resource.String.your_resource_id);     } } 

GetString(), used this way, is a method defined on the abstract Context class. You can also use this version:

using Android.App;  public class MainActivity : Activity {     void SomeMethod()     {         string str = Resources.GetString(Resource.String.your_resource_id);     } } 

Resources, used this way, is a read-only property on the ContextWrapper class, which Activity inherits from the ContextThemeWrapper class.

like image 38
Tieson T. Avatar answered Sep 17 '22 10:09

Tieson T.