![](/img/trans.png)
[英]Android: SetText in handler doesn't change text in TextView
[英]Android. SetText doesn't change the text for Button
我有自定義視圖 - 自定義鍵盤。 每個按鈕都是MaterialButton
。 我需要實現shift
按鈕來改變字母大小寫,所以我這樣做了
private fun onCaseChanged() {
buttons.forEach { button ->
(button as? TextView)?.let {
val text = it.text.toString()
it.text = if (isUpperCase)
text.toUpperCase(Locale.getDefault())
else
text.toLowerCase(Locale.getDefault())
}
}
}
除了 UI 之外,一切都正常工作 - 按鈕上的文本不會改變。 當我將按鈕更改為TextView
時 - 一切正常。 但不適用於任何類型的Button
。 所以現在這對我來說似乎是唯一的方法。
但是我仍然很好奇 - 如果離開MaterialButton
有另一種方法可以解決這個問題
在 XML 文件的按鈕聲明中嘗試android:textAllCaps="false"
。 如果成功,我建議更改主題中的默認按鈕樣式,以便在您需要時默認為 false。
例子
<Button
android:id="@+id/button"
android:textAllCaps="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.