Bitte helfen Sie mir. Ich habe seit einem Tag mit diesem Problem gekämpft. Ich weiß nicht, wie man das löst.Während ich versuche, ein beliebiges Zeichen in editiertext einzugeben, werden Schlüssel eingegeben, aber das Schreiben von Zeichen wurde nicht auf dem erforderlichen Feld festgelegt. Während ich versuche, das Zeichen mithilfe von settext() in Text change listener zu setzen, wird Stackoverflow-Fehler durchsucht. Hinweis: Es wurde nur in 4,4 kitkat (erwähnt micromax Gerät) passiert aber, während in nexus Überprüfung es gut funktioniert)Löschen von Ereignis wegen kein Fensterfokus: KeyEvent
edtPwd1 = (EditText) findViewById(R.id.edt_pwd_1);
edtPwd2 = (EditText) findViewById(R.id.edt_pwd_2);
edtPwd3 = (EditText) findViewById(R.id.edt_pwd_3);
edtPwd4 = (EditText) findViewById(R.id.edt_pwd_4);
edtPwd1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
edtPwd1.setFocusable(true);
edtPwd1.setCursorVisible(true);
return false;
}
});
edtPwd2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
edtPwd2.setFocusable(true);
edtPwd2.setCursorVisible(true);
return false;
}
});
edtPwd3.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
edtPwd3.setFocusable(true);
edtPwd3.setCursorVisible(true);
return false;
}
});
edtPwd4.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
edtPwd4.setFocusable(true);
edtPwd4.setCursorVisible(true);
return false;
}
});
edtPwd1.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) {
Log.e("sdfsadfsdfsdf------", "-------" + s);
// edtPwd1.requestFocus();
}
@Override
public void afterTextChanged(Editable s) {
//edtPwd1.setText(s);
edtPwd1.clearFocus();
edtPwd2.requestFocus();
}
});
edtPwd2.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) {
Log.e("efasdhfhsldf-----", "------1" + s);
edtPwd2.requestFocus();
}
@Override
public void afterTextChanged(Editable s) {
//edtPwd2.setText(s);
edtPwd2.clearFocus();
edtPwd3.requestFocus();
}
});
edtPwd3.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) {
Log.e("efasdhfhsldf-----", "------2" + s);
edtPwd3.requestFocus();
}
@Override
public void afterTextChanged(Editable s) {
//edtPwd3.setText(s);
edtPwd3.clearFocus();
edtPwd4.requestFocus();
}
});
edtPwd4.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) {
Log.e("efasdhfhsldf-----", "------4" + s);
edtPwd4.requestFocus();
}
@Override
public void afterTextChanged(Editable s) {
//edtPwd4.setText(s);
if (!edtPwd4.getText().toString().isEmpty()) {
edtPwd4.clearFocus();
edtPwd1.clearFocus();
edtPwd2.clearFocus();
edtPwd3.clearFocus();
edtPwd1.setFocusable(false);
edtPwd2.setFocusable(false);
edtPwd3.setFocusable(false);
edtPwd4.setFocusable(false);
edtPwd1.setFocusableInTouchMode(true);
edtPwd2.setFocusableInTouchMode(true);
edtPwd3.setFocusableInTouchMode(true);
edtPwd4.setFocusableInTouchMode(true);
edtPwd1.setCursorVisible(false);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edtPwd4.getWindowToken(), 0);
}
}
});
edtPwd2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (edtPwd1.getText().toString().equals("")) {
edtPwd2.clearFocus();
edtPwd1.requestFocus();
}
}
}
});
edtPwd3.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (edtPwd1.getText().toString().equals("")) {
edtPwd3.clearFocus();
edtPwd1.requestFocus();
} else if (edtPwd2.getText().toString().equals("")) {
edtPwd3.clearFocus();
edtPwd2.requestFocus();
}
}
}
});
edtPwd4.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (edtPwd1.getText().toString().equals("")) {
edtPwd4.clearFocus();
edtPwd1.requestFocus();
} else if (edtPwd2.getText().toString().equals("")) {
edtPwd4.clearFocus();
edtPwd2.requestFocus();
} else if (edtPwd3.getText().toString().equals("")) {
edtPwd4.clearFocus();
edtPwd3.requestFocus();
}
}
}
});
Sorry für mein schlechtes Englisch und Dank im Voraus
haben Sie Textfarbe überprüfen? weil es seltsam ist, dass der Text nicht gesetzt ist. Es wird automatisch in der Standardfunktionalität eingestellt. – KDeogharkar
ya ich überprüfte und änderte auch Textfarbe. eingegebenes Zeichen wurde nicht in edititext eingegeben – Palanivelraghul
fügen Sie Ihren Code bitte hinzu. – KDeogharkar