1
A
回答
0
我花了4自定义编辑文本与选择得到财产时按回。这里有听众和CustomEditText元素
mCodeFourEt.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
mConfirmBtn.performClick();
return true;
}
return false;
}
});
mCodeTwoEt.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
String text = mCodeTwoEt.getText().toString();
if (text.length() == 0) {
mCodeOneEt.requestFocus();
mCodeOneEt.selectAll();
return true;
}
}
return false;
}
});
mCodeThreeEt.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
String text = mCodeThreeEt.getText().toString();
if (text.length() == 0) {
mCodeTwoEt.requestFocus();
mCodeTwoEt.selectAll();
return true;
}
}
return false;
}
});
mCodeFourEt.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
String text = mCodeFourEt.getText().toString();
if (text.length() == 0) {
mCodeThreeEt.requestFocus();
mCodeThreeEt.selectAll();
return true;
}
}
return false;
}
});
mCodeOneEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (mCodeOneEt.getText().toString().length() > 0) {
mCodeTwoEt.requestFocus();
}
}
});
mCodeTwoEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (mCodeTwoEt.getText().toString().length() > 0) {
mCodeThreeEt.requestFocus();
}
}
});
mCodeThreeEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (mCodeThreeEt.getText().toString().length() > 0) {
mCodeFourEt.requestFocus();
}
}
});
mCodeFourEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
现在这里是定制的EditText类
public class CustomEditText extends android.support.v7.widget.AppCompatEditText {
public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomEditText(Context context) {
super(context);
}
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
return new ZanyInputConnection(super.onCreateInputConnection(outAttrs),
true);
}
private class ZanyInputConnection extends InputConnectionWrapper {
public ZanyInputConnection(InputConnection target, boolean mutable) {
super(target, mutable);
}
@Override
public boolean sendKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
// Un-comment if you wish to cancel the backspace:
// return false;
}
return super.sendKeyEvent(event);
}
@Override
public boolean deleteSurroundingText(int beforeLength, int afterLength) {
// magic: in latest Android, deleteSurroundingText(1, 0) will be called for backspace
if (beforeLength == 1 && afterLength == 0) {
// backspace
return sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL))
&& sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL));
}
return super.deleteSurroundingText(beforeLength, afterLength);
}
}
}
只需使用你的XML这个自定义类和见上这是4编辑文本的例子。
相关问题
- 1. 如何恢复Jenkins密码
- 2. 如何在ASP.NET中实现密码恢复链接?
- 3. 如何在iPhone应用程序中实现密码恢复?
- 4. 如何实现PIN码屏幕
- 5. RAR密码恢复
- 6. 恢复sa密码
- 7. SQLite密码恢复
- 8. Rails - 密码恢复
- 9. Eclipse密码恢复
- 10. Android - 存储PIN码/密码
- 11. 密码恢复与sha1密码散列
- 12. 如何恢复用户忘记密码,如果密码是saltedhash?
- 13. 如何在ubuntu恢复mysql密码16.04
- 14. 如何恢复neo4j的[admin]密码
- 15. 如何恢复Sybase AWE的SA密码?
- 16. 如何从MD5恢复密码?
- 17. 如何访问密码恢复页面?
- 18. PIN码活动的一些行动后
- 19. ASP.Net会员密码恢复
- 20. MVC 4密码恢复
- 21. 访问MDB密码恢复
- 22. 谷歌Android密码恢复
- 23. 匹配的密码恢复
- 24. 恢复heroku postgres密码
- 25. 使用Asp.net密码恢复
- 26. 密码恢复on Rails的
- 27. WSO2身份密码恢复
- 28. Laravel密码恢复模板
- 29. Asp网络密码恢复
- 30. drupal的密码恢复
你到底想要什么?plz精心制作..! – Shobhit
为每个字符使用一个editText。 (在这个例子中,你需要4个editText) –
但他们之间的导航我如何直接移动光标? –