반응형
EditText가 포커스를 잃을 때 어떻게 알 수 있습니까?
EditText
초점을 잃을 때 잡을 필요가 있는데 다른 질문을 찾았지만 답을 찾지 못했습니다.
내가 사용 OnFocusChangeListener
과 같이
OnFocusChangeListener foco = new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
}
};
그러나 그것은 나를 위해 작동하지 않습니다.
구현 onFocusChange
의 setOnFocusChangeListener
와 hasFocus에 대한 부울 매개 변수가있다. 이것이 거짓이면 다른 컨트롤에 대한 초점을 잃어버린 것입니다.
EditText txtEdit = (EditText) findViewById(R.id.edittxt);
txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
// code to execute when EditText loses focus
}
}
});
이 인터페이스를 인수로 사용하려면 Activity
구현 하십시오 OnFocusChangeListener()
.
public class Shops extends AppCompatActivity implements View.OnFocusChangeListener{
당신에 OnCreate
당신은 예를 들어 리스너를 추가 할 수 있습니다 :
editTextResearch.setOnFocusChangeListener(this);
editTextMyWords.setOnFocusChangeListener(this);
editTextPhone.setOnFocusChangeListener(this);
그런 다음 안드로이드 스튜디오는 인터페이스에서 메소드를 추가하라는 메시지를 표시하고 수락합니다 ...
@Override
public void onFocusChange(View v, boolean hasFocus) {
// todo your code here...
}
그리고 팩토리얼 화 된 코드를 얻었으므로 다음과 같이하면됩니다.
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
editTextResearch.setText("");
editTextMyWords.setText("");
editTextPhone.setText("");
}
if (!hasFocus){
editTextResearch.setText("BlaBlaBla");
editTextMyWords.setText(" One Two Tree!");
editTextPhone.setText("\"your phone here:\"");
}
}
당신이 코딩하는 !hasFocus
것은 초점을 잃은 아이템의 행동을위한 것입니다. 그러나 이러한 상태에서는 포커스 변경으로 인해 사용자의 항목이 덮어 쓰기 될 수 있습니다.
코 틀린 웨이
editText.setOnFocusChangeListener { _, hasFocus ->
if (!hasFocus) { }
}
제대로 작동
EditText et_mobile= (EditText) findViewById(R.id.edittxt);
et_mobile.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
// code to execute when EditText loses focus
if (et_mobile.getText().toString().trim().length() == 0) {
CommonMethod.showAlert("Please enter name", FeedbackSubmtActivity.this);
}
}
}
});
public static void showAlert(String message, Activity context) {
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message).setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
try {
builder.show();
} catch (Exception e) {
e.printStackTrace();
}
}
Java 8 람다 식 사용 :
editText.setOnFocusChangeListener((v, hasFocus) -> {
if(!hasFocus) {
String value = String.valueOf( editText.getText() );
}
});
참고 URL : https://stackoverflow.com/questions/10627137/how-can-i-know-when-an-edittext-loses-focus
반응형
'programing tip' 카테고리의 다른 글
Android에서 AsyncTask 및 오류 처리 (0) | 2020.06.14 |
---|---|
IQueryable과 IEnumerable의 차이점은 무엇입니까 (0) | 2020.06.14 |
MySQL에서 하나의 행을 복사하여 동일한 테이블에 삽입 할 수 있습니까? (0) | 2020.06.14 |
빌드시 코드 4로 명령 복사가 종료되었습니다.-Visual Studio를 다시 시작하면 문제가 해결됩니다. (0) | 2020.06.14 |
AVAudioRecorder를 사용하여 iPhone에서 오디오를 녹음하려면 어떻게합니까? (0) | 2020.06.14 |