[안드로이드] ListView 동물 리스트 만들어보기

[안드로이드] ListView 동물 리스트 만들어보기

반응형

이번 시간에는 ListView를 통해 동물 리스트를

만들어 보겠습니다.

1. 동물 클래스 만들기 Animal.java

java -> 프로젝트명 클릭 -> 마우스 오른쪽 -> New -> Java Class

Name -> Animal -> 엔터

public class Animal { private String id; private String name; private int image; public Animal(String id, String name, int image) { this.id = id; this.name = name; this.image = image; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getImage() { return image; } public void setImage(int image) { this.image = image; } }

2. 동물 리스트 화면 만들기 animal_item.xml

layout 클릭 -> 마우스 오른쪽 -> New -> Layout Resource File

File name: animal_item -> OK

3. 데이터와 화면을 이어 줄 어뎁터 만들기 AnimalAdapter.java

import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.util.List; public class AnimalAdapter extends ArrayAdapter { public AnimalAdapter(Context context, int resource, List animalList){ super(context, resource, animalList); } @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { Animal animal = getItem(position); if(convertView == null){ convertView = LayoutInflater.from(getContext()).inflate(R.layout.animal_item, parent, false); } TextView tv = convertView.findViewById(R.id.animal_name); ImageView iv = convertView.findViewById(R.id.animal_image); tv.setText(animal.getName()); iv.setImageResource(animal.getImage()); return convertView; } }

반응형

4-1 동물 상세 화면 액티비티 만들기

DetailActivity

app 클릭 -> 마우스 오른쪽 -> New -> Activitiy -> Empty Activity

Activity Name: DetailActivity -> Finish

4-2 동물 상세 화면 구성 activity_detail.xml

5. 메인 화면 구성 activity_main.xml

6. 메인 코드 구현 MainActivity.java

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); setUpData(); //데이터 셋팅 setUpList(); //리스트 셋팅 setUpOnClickListener();//상세페이지 이벤트 } /** * 데이터 셋팅 */ 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); } }); } }

이미지 res -> drawable

7. 실행화면

메인화면

상세화면

2021.12.23 - [안드로이드] - [안드로이드] NumberPicker 숫자 선택하는 방법 알아보기

2021.12.21 - [안드로이드] - [안드로이드] Material Floating Action Button Animation 적용하는 방법

2021.12.20 - [안드로이드] - [안드로이드] Material Floating Action Button 쉽게 만드는 방법

반응형

from http://aries574.tistory.com/167 by ccl(A) rewrite - 2021-12-24 16:01:21