如何在视图中显示动态字符串



例如,我想显示我的设备上次与另一个设备同步的日期时间/字符串。我现在有这样的东西:

        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与原始代码一起传递到那里。

相关内容

  • 没有找到相关文章

最新更新