gpt4 book ai didi

java - 自动分离mm :ss in editText?

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:28 24 4
gpt4 key购买 nike

我希望用户输入以分钟和秒为单位的时间。输入分钟后如何自动添加“:”?

将 Eclipse 与 Java 结合使用。

到目前为止我有这个:

EditText editTextT;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

editTextT = (EditText) findViewById(R.id.editTextT);

editTextT.setOnKeyListener(new EditText.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (editTextT.getText().length() == 2) {
editTextT.setText(editTextT.getText() + ":");
editTextT.setSelection(editTextT.getText().length());
}
return false;
}
});

最佳答案

您必须向 TextField 添加一个 KeyListener。例如,您可以对释放的按键使用react。您检查文本区域中文本的长度,然后在字符串末尾添加 :
看看这个:

textfield.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {

}

@Override
public void keyPressed(KeyEvent e) {

}

@Override
public void keyReleased(KeyEvent e) {
if (textfield.getText().length() == 2) {
textfield.setText(textfield.getText() + ":");
textfield.setCaretPosition(textfield.getText().length());
}
}
});

编辑:这是您上面提到的 Java 解决方案,如果您需要 Android 解决方案(因为您的 editText),请尝试以下操作:

edittext.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
if (editText.getText().length() == 2) {
editText.setText(editText.getText() + ":");
editText.setSelection(et.getText().length());
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
}

编辑 2:请查看更新并尝试使用 TextWatcher。

关于java - 自动分离mm :ss in editText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23267813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com