1

我想有效地格式化使用自定义 ItemRenderer 的 Spark 列表的日期属性。所有日期的格式都应该相同,所以我真的不想为每个列表项实例化一个新的 DateTimeFormatter。如何在下面的示例中使用单个 DateTimeFormatter 来格式化属性 data.lastModified?

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                autoDrawBackground="true">
    <mx:VBox height="100%" width="100%" paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10">
        <s:Label text="{data.name}" fontSize="16" height="100%"/>
        <mx:HBox width="100%">
            <s:Label text="{data.client}"/>
            <s:Label width="100%" text="{data.lastModified}" textAlign="right"/>
        </mx:HBox>
    </mx:VBox>
</s:ItemRenderer>

这里是使用:

<s:List id="projectsList" left="12" top="172" bottom="10" width="303"
                    dataProvider="{projectsArray}" itemRenderer="ProjectListItemRenderer"></s:List>
4

1 回答 1

2

在 ActionScript 中定义 DateFormatter 并将其设为静态。有点像这样:

public static var dateFormatter : DateFormatter = new DateFormatter();

无论您有多少类实例,这都会创建 DateFormatter 的单个实例。不过,您必须使用类名访问 DateFormatter。如果您需要在 DateFormatter 上设置属性,您可以在静态方法中进行;有点像这样:

public static var dateFormatter : DateFormatter = ThisClass.createDateFormatter();

public static function createDateFormatter():DateFormatter{
  var df :DateFormatter = new DateFormatteR():
  df.dateStyle = DateTimeStyle.MEDIUM;
  return df;
}
于 2012-12-12T19:18:43.370 回答