例如,我想显示我的设备上次与另一个设备同步的日期时间/字符串。我现在有这样的东西:
Resources resources = context.getResources();
String syncString = String.format(resources.getString(R.string.last_sync), fileLastSync);
我把我的资源字符串保存在我的values/strings.xml中:
<string name="last_sync">Last synced %s</string>
在我的"活动"视图中,我有以下内容:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="@string/last_sync"
/>
但当我运行设备时,只显示字符串表示法。
我做错了什么?它应该显示日期时间的字符串,而不是占位符。
例如,我将字符串硬编码为:
String fileLastSync = "09-18-2014";
我的输出:
上次同步时间:%s
我的预期输出:
上次同步时间:2014年9月18日
此处,
<TextView
android:id="@+id/last_sync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="@string/last_sync"
/>
然后在CCD_ 1中放入以下内容:
Resources resources = context.getResources();
String syncString = String.format(resources.getString(R.string.last_sync), fileLastSync);
TextView lastSyncTextView = ( (TextView) findViewById(R.id.last_sync) );
lastSyncTextView.setText(syncString);
这样做:
<TextView
android:id="@+id/tvLastSync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="@string/last_sync"
/>
现在在您的Activity
更新tvLastSync
:
tvLastSync=(TextView)findViewById(R.id.tvLastSync);
String syncString = String.format(getResources().getString(R.string.last_sync), fileLastSync);
System.out.println(syncString);
tvLastSync.setText(syncString);
看起来可以使用getString(int id,Object…formatArgs)。尝试将fileLastSync作为formatArg与原始代码一起传递到那里。