내 ListView에 3000 개가 넘는 행이 있습니다. 그리고 내가 ListView에서 데이터를 필터링하기 위해 EditText를 타이핑하면 천천히 실행됩니다. 여기 내 코드를 봐필터 데이터를 편집 할 때 EditText 필터가 느리게 실행됩니다.
final TextWatcher textChecker = new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
filterData(search.getText().toString());
}
};
private void filterData(String textinput){
mCursor = mHelperData.searchData(textinput);
startManagingCursor(mCursor);
String[] from = new String[]{ MyData.KEY_ROWID,
MyData.KEY_TITLE, MyData.KEY_DESCRIPTION };
int[] to = new int[]{ R.id.id, R.id.title, R.id.description, R.id.icon };
setListAdapter(new MyAdapter(this, R.layout.list_row, mCursor, from, to));
}
커서로 데이터를 검색하는 것이 좋지는 않습니다. 그렇다면이 경우 연설을 개선 할 수있는 더 좋은 방법이 있습니까?
+1 개발자가 * 사용자 *에게 가장/가장 쉬운 점을 생각하도록 돕기 위해 개발자 – I82Much
예, 사용자가 전화 화면으로 3000 행을 스크롤하는 것은 정말 어렵습니다. 그러나 여기 내 응용 프로그램은 "검색"목적으로 사용됩니다. 어쨌든, 당신의 대답은 저에게 영감을주고 제 생각 엔 뭔가 다른 것을 만들 수 있다고 생각합니다. 정말 고맙습니다! – Dennie
응용 프로그램이 검색 용일 경우 3000 개의 항목을 목록에 넣지 마십시오. 대신 검색 필드를 제공하고 검색을 실행하고 결과를 표시하십시오. 예를 들어, 안드로이드 마켓을 검색하면 마켓에있는 모든 애플리케이션의 ListView를 가져 와서 필터링하지 않습니다. 대신 검색 필드를 가져 와서 일치하는 결과를 보여주는 ListView 만 가져옵니다. – CommonsWare