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?
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);
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With