on
[안드로이드] 동물 리스트(ListView) 검색(SearchView) 하는 기능 추가...
[안드로이드] 동물 리스트(ListView) 검색(SearchView) 하는 기능 추가...
반응형
2021.12.24 - [안드로이드] - [안드로이드] ListView 동물 리스트 만드는 방법
이전 시간에 ListView를 통해 동물 리스트를 만들어 보았습니다.
이번 시간에는 동물 리스트에 조회 기능을 추가해 보겠습니다.
1. 메인 화면 구성 activity_main.xml
기존 만들었던 화면에 SearchView 태그가 추가되었습니다.
queryHint는 검색 아이콘을 누르면 미리 보여주는 문구입니다.
2. 메인 코드 구현 MainActivity.java
onCreate 메서드에 searchAnimal() 함수를 입력하고
searchAnimal 함수를 추가하였습니다.
public class MainActivity extends AppCompatActivity { public static ArrayList animalList = new ArrayList(); ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); searchAmimal(); setUpData(); //데이터 셋팅 setUpList(); //리스트 셋팅 setUpOnClickListener();// 상세 페이지 이벤트 } private void searchAmimal(){ SearchView searchView = findViewById(R.id.animal_search_view); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { ArrayList filterAnimal = new ArrayList<>(); for(int i = 0; i < animalList.size(); i++){ Animal animal = animalList.get(i); //데이터와 비교해서 내가 쓴 동물 이름이 있다면 if(animal.getName().toLowerCase().contains(newText.toLowerCase())){ filterAnimal.add(animal); } } AnimalAdapter adapter = new AnimalAdapter(getApplicationContext(), 0, filterAnimal); listView.setAdapter(adapter); return false; } }); } private void setUpData() { Animal elephant = new Animal("0", "elephant", R.drawable.elephant); animalList.add(elephant); Animal lion = new Animal("1", "lion", R.drawable.lion); animalList.add(lion); Animal monkey = new Animal("2", "monkey", R.drawable.monkey); animalList.add(monkey); Animal mouse = new Animal("3", "mouse", R.drawable.mouse); animalList.add(mouse); Animal rabbit = new Animal("4", "rabbit", R.drawable.rabbit); animalList.add(rabbit); Animal elephant2 = new Animal("5", "elephant2", R.drawable.elephant); animalList.add(elephant2); Animal lion2 = new Animal("6", "lion2", R.drawable.lion); animalList.add(lion2); Animal monkey2 = new Animal("7", "monkey2", R.drawable.monkey); animalList.add(monkey2); Animal mouse2 = new Animal("8", "mouse2", R.drawable.mouse); animalList.add(mouse2); Animal rabbit2 = new Animal("9", "rabbit2", R.drawable.rabbit); animalList.add(rabbit2); } private void setUpList() { listView = findViewById(R.id.animal_listView); AnimalAdapter adapter = new AnimalAdapter(getApplicationContext(), 0, animalList); listView.setAdapter(adapter); } private void setUpOnClickListener() { listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView adapterView, View view, int position, long l) { Animal selectAnimal = (Animal)listView.getItemAtPosition(position); Intent showDetail = new Intent(getApplicationContext(), DetailActivity.class); showDetail.putExtra("id", selectAnimal.getId()); startActivity(showDetail); } }); } }
3. 실행화면
li를 입력하자 li가 포함된 정보만 조회가 되고 있습니다.
2021.12.23 - [안드로이드] - [안드로이드] NumberPicker 숫자 선택하는 방법 알아보기
2021.12.20 - [안드로이드] - [안드로이드] Material Floating Action Button 쉽게 만드는 방법
2021.12.21 - [안드로이드] - [안드로이드] Material Floating Action Button Animation 적용하는 방법
반응형
from http://aries574.tistory.com/168 by ccl(A) rewrite - 2021-12-25 16:27:55