【发布时间】:2021-08-16 07:45:27
【问题描述】:
我必须制作多语言应用程序。当我将语言从英语转换为孟莱语时,应用程序的整体视图发生了变化。但是我的日期选择器无法更改。当我选择孟加拉语时它显示英语格式,当我选择英语时,日期选择器再次显示孟加拉语格式。我该如何解决这个问题。在这里我显示我的代码:
LocaleCode.kt
fun setLocale() {
var sm: SessionManager = SessionManager()
val lang = sm.languageCode
if (lang != "") {
lang?.let {
val locale = Locale(it)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
AppController.setLocale(it)
}
} else {
sm.language = "Bangla"
sm.languageCode = "en"
val locale = Locale("en")
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
AppController.setLocale("en")
}
}
Activity.kt
@OnClick(R.id.expire_date)
fun OnExpiryDate() {
val c = Calendar.getInstance(Locale.ENGLISH)
val dialog = Dialog(requireActivity())
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
dialog.setContentView(R.layout.dialog_datepicker)
val cancel = dialog.findViewById<View>(R.id.datepicker_cancel) as TextView
val picker = dialog.findViewById<View>(R.id.datePicker) as DatePicker
val ok = dialog.findViewById<View>(R.id.datepicker_ok) as TextView
cancel.setOnClickListener { dialog.dismiss() }
picker.minDate = c.timeInMillis
ok.setOnClickListener {
c.set(picker.year, picker.month, picker.dayOfMonth)
val format = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
val dateString = format.format(c.time)
tvExpiryDate.text = dateString
isExpiryDateChanged = true
dialog.dismiss()
}
dialog.show()
}
acitivty_main.xml
<TextView
android:background="@drawable/a_border"
android:gravity="center_vertical"
android:hint="@string/yyyymmdd"
android:id="@+id/tv_expiredate_text"
android:layout_below="@+id/tv_expiredate"
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:layout_width="match_parent"
android:paddingStart="8dp"
android:text="expiredDate"
android:textAlignment="viewStart"
android:textColor="@color/colorblack"
android:textSize="17sp"
tools:ignore="RtlCompat" />
这是输出:
See this picture, when I select Bengali it shows English format
See this picture, when I select English it shows Benglai format
【问题讨论】:
标签: android kotlin localization android-datepicker