리스트를 구현한 뒤 맨 위에 EditText로 검색기능을 만들었는데 클릭하면 기존의 리스트아이템의 정보가 나옵니다.
list item으로는 {가,나,다,라,마,바,사,아....}로 만들었는데 '다'라고 검색시키고 검색결과가 '다'가 나온 후
클릭하면 '가'의 대한 정보가 나옵니다.
ArrayAdapter<String> aa1;
ArrayList<String> al1;
ListView favoritelist;
EditText name_filter;
name_filter = (EditText)findViewById(R.id.search_filter);
aa1 = new ArrayAdapter<String>(Favorite.this, android.R.layout.simple_list_item_1, al1);
favoritelist.setOnItemClickListener(this);
name_filter.setTextFilterEnabled(true);
name_filter.addTextChangedListener(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) {
Favorite.this.aa1.getFilter().filter(s);
}
});
// 리스트 아이템 클릭
public void onItemClick(AdapterView<?> av, View v, int i, long arg3) {
Toast.makeText(Main.this, al1.get(i), Toast.LENGTH_SHORT).show());
}
토스트가 출력은 되지만 출력내용이 '가'만 출력되네요.
어떤 것을 추가해야되나요?




어..저도 옛날에 같은증상으로 고생했었는데요
질문자님의 소스로는 제가 정확히 해석은 힘드네요 ㅎㅎ
우선 저는 이문제를요..
ArrayList를 두개를 사용해서 해결했습니다.
a, b ArrayList가 있다면,
a = 기존 리스트에 표시될 배열(님의 경우 '가나다라..')
b = 검색된 리스트가 표시될 배열('다'를 검색했으면 '다'만 들어가있겠죠)
그후 onTextChanged에 b 를 이용해서 리스트뷰를 다시 뿌려줬습니다.
그러면 리스트아이템 클릭시 제대로 먹더라구요^^