Когда я запускаю код в Android Studio, я вижу в Logcat надпись «Пропущено 44 кадра! Приложение может выполнять слишком много работы в своем основном потоке».У меня мало кода работает в основном потоке?Пожалуйста, помогите мне, где я пропускаю?заранее спасибо.Код ошибки ниже
12-21 19: 59: 26,635 6962-6962 /?Я / Хореограф: пропущено 44 кадра!Приложение может выполнять слишком много работы в своем основном потоке
public class AdminLogin extends AppCompatActivity implements View.OnTouchListener, View.OnClickListener, TextView.OnEditorActionListener {
private ImageView imageView;
private TextInputLayout textViewCode,textViewUser;
private EditText editTextCode,editTextUser;
private CardView cardView;
private InputMethodManager in;
private ConstraintLayout constraintLayout;
private Button loginButton;
private SharedPreferences.Editor editor;
private CheckBox rememberMe;
Drawable errorIcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_login);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
constraintLayout = findViewById(R.id.outerConstraint);
cardView = findViewById(R.id.card_view);
imageView = findViewById(R.id.imageView);
textViewCode = findViewById(R.id.textViewCode);
textViewUser = findViewById(R.id.textViewUser);
editTextCode = findViewById(R.id.editTextCode);
editTextUser = findViewById(R.id.editTextUser);
loginButton = findViewById(R.id.loginButton);
rememberMe = findViewById(R.id.rememberMe);
in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
errorIcon = getResources().getDrawable(R.drawable.attention);
errorIcon.setBounds(new Rect(0, 0, errorIcon.getIntrinsicWidth(), errorIcon.getIntrinsicHeight()));
action();
}
private void action(){
constraintLayout.setOnTouchListener(this);
cardView.setOnTouchListener(this);
imageView.setOnClickListener(this);
editTextCode.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) {
textViewCode.setErrorEnabled(false);
}
@Override
public void afterTextChanged(Editable s) {
if(s.length() == 0){
//textViewCode.setError(" ");
textViewCode.getEditText().setError(" ",errorIcon);
}else if(s.toString().trim().equals("dev")){
textViewCode.setErrorEnabled(false);
}else if(TextUtils.isEmpty(s.toString().trim())){
textViewCode.setError(" ");
}else{
textViewCode.setError(" ");
}
}
});
editTextUser.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) {
textViewUser.setErrorEnabled(false);
}
@Override
public void afterTextChanged(Editable s) {
if(s.length() == 0){
textViewUser.getEditText().setError(" ",errorIcon);
}else if(s.toString().trim().equals("dummy")){
textViewUser.setErrorEnabled(false);
}else if(TextUtils.isEmpty(s.toString().trim())){
textViewUser.setError(" ");
}else{
textViewUser.setError(" ");
}
}
});
editTextUser.setOnEditorActionListener(this);
loginButton.setOnClickListener(this);
}
private void checkForm(){
if(editTextUser.getText().toString().trim().equals("dummy") && editTextCode.getText().toString().trim().equals("dev")){
if(rememberMe.isChecked()){
editor = getSharedPreferences("logindetail",MODE_PRIVATE).edit();
editor.putString("username",editTextUser.getText().toString());
editor.putString("code",editTextCode.getText().toString());
editor.apply();
}
startActivity(new Intent(AdminLogin.this,Password.class));
}else if(TextUtils.isEmpty(editTextUser.getText().toString().trim())){
textViewUser.getEditText().setError(" ",errorIcon);
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v.getId()==R.id.outerConstraint || v.getId()==R.id.card_view){
in.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
return true;
}
return false;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.loginButton:
checkForm();
break;
case R.id.imageView:
finish();
break;
}
}
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_DONE){
loginButton.performClick();
return true;
}
return false;
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences preferences = getSharedPreferences("logindetail",MODE_PRIVATE);
editTextCode.setText(preferences.getString("code",""));
editTextUser.setText(preferences.getString("username",""));
}
}