안녕 얘들 아, 안드로이드 응용 프로그램에서 지연을 관리하는 방법을 알고 싶습니다. 예를 들어, onTextChanged() 메소드를 재정의했습니다. 이와 관련하여 사용자가 내 자동 완성 텍스트 상자에 입력하는 내용을 마무리하기 위해 0.5 초와 같은 지연을 설정하려고합니다. 사용자가 0.5 초 안에 타이핑을 멈추거나 멈추는 경우 내 코드 (예 : 내 자동 완성 텍스트 상자의 필터링 스키마/논리, 내 앱 내에서 리소스 사용량을 줄이기위한 것)에 특정 메소드 나 구현을 실행하고 싶습니다.android app에서 지연 관리
여기 내 예제 코드입니다 :
protected AutoCompleteTextView autoCompleteView;
protected AutoCompleteAdapter suggsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
countries = getResources().getStringArray(R.array.countries_array);
autoCompleteView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
TextWatcher textChecker = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//here inside this overridden method, I wanted to create a delay in order to lessen the
//use of resources.
String enteredText = autoCompleteView.getText().toString();
refreshList(enteredText);
}
};
autoCompleteView.addTextChangedListener(textChecker);
}
예를 들면
, 사용자는 "Lond는"("런던"와 같은 문자열) 각각의 문자로, 나는 미만 0.5 초를 원하는 입력 입력 이전의 모든 onTextChanged ("L", "o"및 "n"을 입력 할 때 호출되는) 메소드를 무시하고 마지막 문자가 입력되었을 때 onTextChanged()만이 실행되도록 부여됩니다.내가 그렇게 할 것입니다 방법 트리거 될 때 onTextChanged()
어떤 구체적인? 나는 안드로이드 개발에 새로운 오전. 그래서 내 코드에서 특정 코드 구현은 크게 감사하겠습니다. hehe : D – MarkJ
답변에 구현 세부 정보를 추가했습니다. – Michael
지금까지는 작동하지만, 어댑터의 비정상적인 동작처럼 Handler를 사용할 때 더 많은 문제가 있습니다. 어쩌면 UI를 사용하지 않고 백엔드 스레딩에 Handler를 사용하는 것이 좋습니다. :) – MarkJ