У меня есть два поля EditText
, и я пытаюсь, когда я сканирую в EditText1
, что фокус go до EditText2
. Но все, что происходит, это то, что фокус фокусируется на EditText2
и go обратно на EditText1
. Но я понятия не имею, почему. Кто-нибудь может мне помочь или может дать мне совет, пожалуйста? Мой код выглядит следующим образом:
publi c Инвентаризация классов расширяет AppCompatActivity реализует AdapterView.OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Edittext1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int inType = Edittext1.getInputType(); // backup the input type
Edittext1.setText("");
Edittext1.setInputType(InputType.TYPE_NULL); // disable soft input
Edittext1.onTouchEvent(event); // call native handler
Edittext1.setInputType(inType); // restore input type
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(Edittext1.getWindowToken(), 0);
return true; // consume touch even
}
});
EditText2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int inType = EditText2.getInputType(); // backup the input type
EditText2.setText("");
EditText2.setInputType(InputType.TYPE_NULL); // disable soft input
EditText2.onTouchEvent(event); // call native handler
EditText2.setInputType(inType);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(EditText2.getWindowToken(), 0);
return true; // consume touch even
}
});
EditText2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
if (!EditText2.getText().toString().isEmpty()){
ParameterClass.Artartid = "null";
ParameterClass.ArtcileOrEAN = "article";
ParameterClass.eanisthere = "";
ParameterClass.eanartid = "";
ParameterClass.eanAmount = "";
ParameterClass.ean = "";
getEAN(EditText2.getText().toString());
if(ParameterClass.eanartid != null) {
getArticleInformation(ParameterClass.eanartid);
}
if (ParameterClass.Artartid.isEmpty() || ParameterClass.Artartid.equals("null")){
EditText2.setText("");
} else {
artbez.setText(ParameterClass.artname);
}
}
}
}
});
EditText2.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (v.getId() == R.id.EditText2) {
ParameterClass.ArtcileOrEAN = "article";
ParameterClass.eanisthere = "";
ParameterClass.eanartid = "";
ParameterClass.eanAmount = "";
ParameterClass.ean = "";
getEAN(String.valueOf(EditText2.getText()));
if (ParameterClass.eanartid == null || ParameterClass.eanAmount == null ||
ParameterClass.eanartid.isEmpty() || ParameterClass.eanAmount.isEmpty()) {
ParameterClass.ean = String.valueOf(EditText2.getText());
getArticleOnlyWithScanner(ParameterClass.ean);
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
} else {
getArtnName(ParameterClass.eanartid);
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
amountinventur.setText(ParameterClass.eanAmount);
if(ParameterClass.loginAfterScannSave == null || ParameterClass.loginAfterScannSave.equals("false")){
SaveInventory();
} else {
amountinventur.requestFocus();
}
}
}
return false;
}
});
EditText1.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (v.getId() == R.id.EditText1) {
if (!EditText1.getText().toString().isEmpty()) {
ParameterClass.StockSearch = "null";
ParameterClass.stockID = "null";
getStockInformation(EditText1.getText().toString());
if (ParameterClass.stockID.isEmpty() || ParameterClass.stockID.equals("null")) {
Stockalert();
EditText1.setText("");
} else {
textView3.setText("Lager: " + ParameterClass.stockName);
EditText1.clearFocus();
EditText1.setCursorVisible(false);
EditText2.setCursorVisible(true);
EditText2.requestFocus();
}
}
}
return false;
}
});
EditText1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
if (!EditText1.getText().toString().isEmpty()) {
ParameterClass.StockSearch = "null";
ParameterClass.stockID = "null";
getStockInformation(EditText1.getText().toString());
if (ParameterClass.stockID.isEmpty() || ParameterClass.stockID.equals("null")) {
Stockalert();
EditText1.setText("");
}
}
}
}
});
}
}