我正在使用TextClock显示日期和日期。

是否可以更改TextClock的默认语言(英语)?

        <TextClock
            android:id="@+id/date"
            style="@style/DateStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:format12Hour="EEEE\n MMMM d"
            android:format24Hour="EEEEd\n MMMM"/>


显示:

android - 是否可以更改xml中TextClock View 显示的语言-LMLPHP

最佳答案

您可以通过编写自定义TextClock并在其中设置Locale来实现。尝试这个:

public class MyTextClock extends android.widget.TextClock {

    public MyTextClock(Context context) {
        super(context);
        setLocaleDateFormat();
    }

    public MyTextClock(Context context, AttributeSet attrs) {
        super(context, attrs);
        setLocaleDateFormat();
    }

    public MyTextClock(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setLocaleDateFormat();
    }

    private void setLocaleDateFormat() {
        // You can change language from here
        Locale currentLocale = new Locale("en");
        Calendar cal = GregorianCalendar.getInstance(TimeZone.getDefault(), currentLocale);

        String dayName = cal.getDisplayName(cal.DAY_OF_WEEK, Calendar.LONG, currentLocale);
        String monthName = cal.getDisplayName(cal.MONTH, Calendar.LONG, currentLocale);

        this.setFormat12Hour("'" + dayName + "'\n'" + monthName + "' dd");
        this.setFormat24Hour("'" + dayName + "'\n'" + monthName + "' dd");
    }
}


像这样对您的布局实施此自定义TextClock

<com.your.package.MyTextClock
    android:id="@+id/date"
    style="@style/DateStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"/>


干得好。祝好运。

08-04 08:24