상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - ViewPager에서 다수의 데이터 소스를 동시에 다루는 예제는?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
ViewPager는 Android에서 여러 페이지를 수평으로 스와이프할 수 있도록 하는 UI 구성 요소입니다. 여러 데이터 소스에서 데이터를 동시에 다루기 위해서는 각 데이터 소스를 처리하는 어댑터를 만들어야 합니다. 아래는 ViewPager에서 두 개의 데이터 소스 (예: 이미지와 텍스트)를 동시에 다루는 간단한 예제를 보여드리겠습니다. 예제 구현 1. 프로젝트 설정 : Android Studio에서 새로운 프로젝트를 생성하고 필요한 라이브러리를 추가합니다. 2. 레이아웃 파일 생성 : `activity_main.xml` 파일에 ViewPager와 TabLayout을 추가합니다. ```xml <androidx.viewpager.widget.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"/> <com.google.android.material.tabs.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_anchor="@id/viewPager" app:layout_anchorGravity="top"/> ``` 3. 데이터 모델 생성 : 두 개의 데이터 소스를 관리할 모델 클래스를 만듭니다. ```java public class Item { private String text; private int imageResId; public Item(String text, int imageResId) { this.text = text; this.imageResId = imageResId; } public String getText() { return text; } public int getImageResId() { return imageResId; } } ``` 4. PagerAdapter 생성 : ViewPager에 사용할 PagerAdapter를 생성합니다. 이 어댑터는 텍스트와 이미지를 표시합니다. ```java public class MyPagerAdapter extends PagerAdapter { private Context context; private List<Item> items; public MyPagerAdapter(Context context, List<Item> items) { this.context = context; this.items = items; } @Override public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.page_item, container, false); TextView textView = view.findViewById(R.id.textView); ImageView imageView = view.findViewById(R.id.imageView); Item item = items.get(position); textView.setText(item.getText()); imageView.setImageResource(item.getImageResId()); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public int getCount() { return items.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } } ``` 5. 페이지 레이아웃 생성 : `page_item.xml` 파일을 생성하여 각 페이지에서 보여줄 UI를 정의합니다. ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:textSize="18sp"/> </LinearLayout> ``` 6. MainActivity에서 설정 : 데이터를 초기화하고 ViewPager와 어댑터를 설정합니다. ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = findViewById(R.id.viewPager); TabLayout tabLayout = findViewById(R.id.tabLayout); List<Item> itemList = new A<a href='https://sangseek.com/sangseeks/rrayList/ko'>rrayList</a><>(); itemList.add(new Item("Page 1", R.drawable.image1)); // 예시에 맞게 이미지 리소스 제공 itemList.add(new Item("Page 2", R.drawable.image2)); itemList.add(new Item("Page 3", R.drawable.image3)); MyPagerAdapter adapter = new MyPagerAdapter(this, itemList); viewPager.setAdapter(adapter); tabLayout.setupWithViewPager(viewPager); } } ``` 이 예제는 ViewPager를 이용해 두 개의 데이터 소스 (텍스트 및 이미지)를 동시에 다루고, 각 페이지에 보여주는 방법을 설명합니다. 필요에 따라 더 많은 데이터 소스를 추가할 수 있으며, RecyclerView와 결합하여 더 복잡한 데이터 구조를 처리할 수도 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기