use*_*164 12 android android-edittext
Android - 我想从用户输入一个数字输入到EditText - 它需要用空格分隔 - 每4个字符.示例:123456781234 - > 1234 5678 1234
这仅用于视觉目的.但是我需要没有空格的字符串以供进一步使用.
我能做到这一点最简单的方法是什么?
Val*_*tin 17
有一种更简单的方法可以实现此目的:
editText.doAfterTextChanged { text ->
val formattedText = text.toString().replace(" ", "").chunked(4).joinToString(" ")
if (formattedText != text.toString()) {
editText.setText(formattedText)
editText.setSelection(editText.length())
}
}
Run Code Online (Sandbox Code Playgroud)
当你想要获取没有空格的文本时,只需执行以下操作:
editText.text.toString().replace(" ","")
Run Code Online (Sandbox Code Playgroud)
小智 10
这是信用卡的editext?
首先创建计数变量
int count = 0;
Run Code Online (Sandbox Code Playgroud)
然后把它放在你的oncreate(活动)/ onviewcreated(片段)
ccEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (count <= ccEditText.getText().toString().length()
&&(ccEditText.getText().toString().length()==4
||ccEditText.getText().toString().length()==9
||ccEditText.getText().toString().length()==14)){
ccEditText.setText(ccEditText.getText().toString()+" ");
int pos = ccEditText.getText().length();
ccEditText.setSelection(pos);
}else if (count >= ccEditText.getText().toString().length()
&&(ccEditText.getText().toString().length()==4
||ccEditText.getText().toString().length()==9
||ccEditText.getText().toString().length()==14)){
ccEditText.setText(ccEditText.getText().toString().substring(0,ccEditText.getText().toString().length()-1));
int pos = ccEditText.getText().length();
ccEditText.setSelection(pos);
}
count = ccEditText.getText().toString().length();
}
});
Run Code Online (Sandbox Code Playgroud)
正如@waqas指出的,如果您的目标是在用户键入数字时实现此目的,则需要使用TextWatcher。这是实现空间的一种潜在方法:
StringBuilder s;
s = new StringBuilder(yourTxtView.getText().toString());
for(int i = 4; i < s.length(); i += 5){
s.insert(i, " ");
}
yourTxtView.setText(s.toString());
Run Code Online (Sandbox Code Playgroud)
每当需要获取不带空格的字符串时,请执行以下操作:
String str = yourTxtView.getText().toString().replace(" ", "");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19673 次 |
| 最近记录: |