例如:我在edittext中输入1然后再次在同一个edittext中输入2然后不想删除manualy 1但是想直接从1到2覆盖它。
例如:
editTextOtpFirst.addTextChangedListener(this);
editTextOtpSecond.addTextChangedListener(this);
@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 (editTextOtpFirst.getText().length() ==1 && !checkEditTextEmpty(editTextOtpFirst)) {
editTextOtpSecond.requestFocus();
}
if (editTextOtpSecond.getText().length() ==1 && !checkEditTextEmpty(editTextOtpFirst) ) {
editTextOtpThird.requestFocus();
}
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (v.getId() == R.id.editTextOtpThird) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
editTextOtpSecond.requestFocus();
return true;
}
}
}
if (v.getId() == R.id.editTextOtpFourth) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
editTextOtpThird.requestFocus();
return true;
}
}
}
if (v.getId() == R.id.editTextOtpSecond) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
editTextOtpFirst.requestFocus();
return true;
}
}
}
现在当我输入值" 1"在编辑文本-1然后光标移动到下一个编辑文本-2但我想从" 1"更改编辑文本-1的值。到" 4"但需要手动删除" 1"然后需要输入另一个值..但我不想要这个...我想直接覆盖" 1"到" 4"当我在编辑文本中键入另一个值时。
答案 0 :(得分:1)
您可以使用TextWatcher
通过在编辑文本中添加onTextChangeListener
来执行此操作,如下所示:
editText.addOnTextChangeListener(new TextWatcher{
beforeTextChanged(..){
// ..... can try something here
}
onTextChanged(Charsequence text, ...){
// or can append the text to the editText here
editText.setText("");
editText.append(text);
}
});
我也在忙着编写这段代码,所以请寻找正确的语法ps。接口名称是正确的。希望这有帮助!
答案 1 :(得分:0)
我认为您的解决方案是使用编辑文本提示而不是文本。您可以将提示颜色设置为您希望文本的颜色。然后,您可以使用setHint
方法。
答案 2 :(得分:0)
你可以将这一行添加到你的布局xml文件中,android会为你做这些事情
android:maxLength="1"
你应该将它作为属性添加到editText元素,例如
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLength="1" />
这是一个老问题,但我认为这样做会很好。