簡體   English   中英

Android。 SetText 不會更改 Button 的文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM