Теперь я создал цифровую клавиатуру, и у меня есть несколько текстов для редактирования, и я установил щелчки для цифр, но они предназначены только для первого текста для редактирования, но я не могу установить его для других editTexts
Вот картинка, которая объясняет, что я имею в виду Я показываю, что при вводе четырех цифр фокус больше не требуется ни в каком тексте редактирования, и он работает, но я хочу, чтобы фокус вернулся, если мне нужно удалить все четыре цифры, как это сделать?
Вот код, который я использую
Основная активность. java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
public class MainActivity extends AppCompatActivity {
Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9;
EditText edit1, edit2, edit3, edit4;
ImageButton imageButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = findViewById(R.id.edit1);
edit2 = findViewById(R.id.edit2);
edit3 = findViewById(R.id.edit3);
edit4 = findViewById(R.id.edit4);
btn0 = findViewById(R.id.button0);
btn1 = findViewById(R.id.button1);
btn2 = findViewById(R.id.button2);
btn3 = findViewById(R.id.button3);
btn4 = findViewById(R.id.button4);
btn5 = findViewById(R.id.button5);
btn6 = findViewById(R.id.button6);
btn7 = findViewById(R.id.button7);
btn8 = findViewById(R.id.button8);
btn9 = findViewById(R.id.button9);
imageButton = findViewById(R.id.button_delete_delete);
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn0.getText());
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn1.getText());
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn2.getText());
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn3.getText());
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn4.getText());
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn5.getText());
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn6.getText());
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn7.getText());
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn8.getText());
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText(btn9.getText());
}
});
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText("");
edit2.setText("");
edit3.setText("");
edit4.setText("");
}
});
edit1.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) {
if (s.length() == 0) {
edit1.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 1) {
edit2.requestFocus();
}
edit2.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) {
if (s.length() == 0) {
edit1.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 1) {
edit3.requestFocus();
}
}
});
edit3.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) {
if (s.length() == 0) {
edit1.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 1) {
edit4.requestFocus();
}
}
});
edit4.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) {
if (s.length() == 0) {
edit1.requestFocus();
}
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 1) {
edit1.setFocusable(false);
edit1.setSelected(false);
edit2.setFocusable(false);
edit2.setSelected(false);
edit3.setFocusable(false);
edit3.setSelected(false);
edit4.setFocusable(false);
edit4.setSelected(false);
} else if (s.length() == 0) {
edit1.setFocusable(true);
}
}
});
}
});
}
}