Android 개발 중 requestfocus()가 잘못된 원인 및 해결 방법

2374 단어 androidrequestfocus
머리말
최근 에 회사 프로젝트 를 할 때 자주 문제 가 발생 합 니 다.예 를 들 어 제 가 EditText 와 같은 컨트롤 을 위해 requestfocus()를 설정 할 때 사용 되 지 않 습 니 다.예 를 들 어 로그 인 할 때 저 는 사용자 가 입력 한 비밀 번 호 를 판단 하고 정확 하면 로그 인 합 니 다.오 류 는 비밀 번 호 를 잘못 알 리 고 입력 상자 에 초점 을 맞 추 지만 실제 적 으로 효과 가 없습니다.

package com.example.hfs.requestfocusdemo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 private EditText mUserName,mPassWord;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initView();
 }
 private void initView() {
  mUserName= (EditText) this.findViewById(R.id.et_username);
  mPassWord= (EditText) this.findViewById(R.id.et_password);
  mPassWord.setOnClickListener(this);
 }
 @Override
 public void onClick(View view) {
  if (!"123456".equals(mPassWord.getText().toString())){
   Toast.makeText(this,"    ,     ",Toast.LENGTH_SHORT).show();
   mPassWord.requestFocus();
  }else{
   startActivity(new Intent(this,MainActivity.class));
   Toast.makeText(this,"    ",Toast.LENGTH_SHORT).show();
   finish();
  }
 }
}
원인.
자 료 를 찾 아 분석 한 결과 다음 과 같은 문제 일 수 있 습 니 다.
Android 가 새로 고침 UI 를 불 러 올 때 는 왼쪽 에서 오른쪽으로,위 에서 아래로 순서 로 불 러 오 는 중 이 며,이때 requestFocus()를 불 러 오 면 이때 전체 화면 을 새로 고침 하지 않 아 requestFocus 가 무효 가 될 수 있 습 니 다.
해결 방법
원인 을 찾 으 면 해결 방법 이 있 으 니 그 에 게 시간 을 늦 추어 라.

mPassWord.postDelayed(new Runnable() { 
  @Override 
  public void run() { 
    mPassWord.requestFocus(); 
  } 
}, 500); 
이렇게 해서 이 문 제 를 해결 했다.
PS:requestFocus()가 잘못된 이유

setVisible(true); 
person.requestFocus(); 
즉,request Focus()는 set Visible(true)의 뒤에 두 어야 한 다 는 것 이다.
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 개발 에서 requestfocus()가 무효 한 원인 과 해결 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기