2017-06-13 16 views
0

TextClockを使用して、その日と日付を表示しています。xmlの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"/> 

ディスプレイ:

Display

答えて

2

カスタム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"/> 

をあなたが行きます。がんばろう。

+0

メインアクティビティからこのクラスを呼び出すにはどうすればよいですか?それは長い時間でした:( –

+0

Nevermind!素晴らしいソリューションありがとう! –

関連する問題