我尝试在Xamarin Studio中使用格式化字符串作为资源来创建Android-App
这是我的Button XML的一部分:
<Button
android:id="@+id/butAddStation"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/butAbout" />
这是资源:
<string name="butAbout">About {0}</string>
<string name="app_name">HVV Forrest</string>
我认为很容易看到,我试图实现的目标。按钮文字应为
string.format("About {0}","HVV Forrest"); // About HVV Forrest
实现这一目标的最优雅方式是什么。这可以通过字符串resouces或axml-File中的标记完全完成吗?
答案 0 :(得分:1)
无法单独使用XML。
XML:
<string name="butAbout">About %1$s</string>
<string name="app_name">HVV Forrest</string>
在代码中:
String.format(getString(R.string.butAbout), getString(R.string.app_name));
答案 1 :(得分:0)
butAbout.Text = string.Format (GetString(@Resource.String.butAbout),GetString(@Resource.String.app_name);
非常感谢,朋友
答案 2 :(得分:0)
这对我有用:
dateDisplay.Text = Java.Lang.String.Format (this.GetString(Resource.String.time_selectedDate), date.ToString("d"));
string time = string.Format ("{0}:{1}", hour.ToString(), minute.ToString());
timeDisplay.Text = Java.Lang.String.Format (this.GetString(Resource.String.time_selectedTime), time);
对于以下字符串资源:
<string name="time_selectedDate" formatted="false">Date %1$s</string>
<string name="time_selectedTime" formatted="false">Time %1$s</string>
答案 3 :(得分:0)
String.Format无法正常工作,除非您指定它应该与Xamarin中的Java API一起使用。这样做的方法是使用global ::
以下应该可行,我测试了它:)
yourTextViewHere.Text = global::Java.Lang.String.Format(Resources.GetString(Resource.String.your_resource_from_string_file), "Your actual string.");