在 Android 中选择文本字段时如何选择该文本字段的整个值?
我能想到的最常见的示例是在计时器应用程序中使用此功能。计时器最初设置为零,通常格式为
00
。当您选择保存计时器值的文本字段时,将选择整个值或 00
。当您按下键盘按键时,整个值都会被您的输入替换。无需手动选择和使用退格键。
我不知道如何实现这个功能。
这是我开发的示例应用程序的代码,尝试实现该功能。
// This variable holds the value of the text field. It is initially set to "initial text".
var text by remember { mutableStateOf("initial text") }
// This variable holds the state of the enabled parameter for the text field.
var isTextFieldEnabled by remember { mutableStateOf(false) }
/* This is the conditional that selects the full text value when the button is enabled.
That's what it is supposed to do but it's not working */
if (isTextFieldEnabled) {
TextRange(0, text.length)
}
// This is the layout of the application. The content is centered horizontally and vertically.
Column(
Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
// This is the text field that I wish to select the total value of.
TextField(
value = text,
onValueChange = { text = it },
enabled = isTextFieldEnabled,
modifer = Modifier.clickable { isTextFieldEnabled = true }
)
}
这就是全部代码。正如您所看到的,文本字段是可单击的,当单击它时,它将
isTextFieldEnabled
设置为 true,并激活应该使用 TextRange
选择全文的条件。然而这不起作用。如何修改代码以允许我在问题标题中描述的内容。
这可能有效,所以我在单击字段本身时选择所有文本字段,希望这有帮助
var text by remember { mutableStateOf(TextFieldValue("initial Text")) }
TextField(value = text, onValueChange = { text = it }, modifier = Modifier.clickable {
text = text.copy(
selection = TextRange(0, text.text.length)
)
})