안드로이드 어댑터 문의드립니다.


안드로이드 공부를 시작한지 얼마 안되서 궁금한 점이 있습니다.

뷰페이저로 만든 각 메뉴 안에 리스트 뷰를 넣는 시도 중에 리스트뷰 관련 어댑터를 어떻게 처리할지 고민중에 질문드립니다.

onCreate() 메서드가 들어있는 액티비티 안에서 어댑터가 내부클래스로 되어 있는 경우를 많이 봤습니다.

아래는 제가 만든 메인 엑티비티안에 있는 뷰페이저를 이용한 메뉴 어댑터입니다.

private class MenuPagerAdapter extends PagerAdapter {

    private LayoutInflater menuLayoutInflater;
    private ListView listView;

    public MenuPagerAdapter(Context context) {
        menuLayoutInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view.equals(object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        View view = null;

        switch (position){
            case 0 :
                view = menuLayoutInflater.inflate(R.layout.activity_menu1, null);
                break;
            case 1 :
                view = menuLayoutInflater.inflate(R.layout.activity_menu2, null);
                break;
            case 2 :
                view = menuLayoutInflater.inflate(R.layout.activity_menu3, null);
                break;
        }

        container.addView(view);

        return view;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

}

물론 경우에 따라 많은 방법이 있겠지만.

어댑터 폴더를 따로 만들어서 관리하는게 더 좋은 경우인지 ,

제가 해본 경우 처럼 액티비티 안에 내부클래스로 관리하는게 좋은 경우인지 궁금합니다.

좋은 경우라기보단 많은 분들이 어떻게 하나 궁금해서 질문드립니다.

  • 2016년 03월 05일에 작성됨
    Software Engineer

조회수 367


1 답변


좋아요
1
싫어요
채택취소하기

그때그때 경우에 따라서 다른데요. 저같은 경우는 adapter클래스가 많이 길지 않은 경우 내부에 정의해서 사용했었고 adapter안에 코드가 많은경우 내부클래스가 아닌 바깥으로 빼서 사용했습니다.

예전에 안드로이드 앱 개발할때 mvc패턴으로 적용해서 개발을 했던적이 있는데요. 이때는 view역할을 담당하는 클래스에 adapter를 내부클래스로 정의해서 많이 사용했었습니다.

아래 주소로 들어가보시면 안드로이드에 mvc를 어떻게 적용하는지에 대한 설명이 있는 pdf가 있습니다. http://www.androidpub.com/2437353 참고해서 한번 봐보세요. 도움이 되셨으면 좋겠네요.

  • 2016년 03월 08일에 작성됨
    안드로이드, 루비온레일즈

  • 감사합니다. 많은 도움이 됐습니다. 안드로이드에도 MVC패턴을 적용해보고 싶었는데 막막했는데 감사합니다^^    김선우   2016.3.8 16:28     
  • 와 안드로이드를 어떻게 mvc로 적용시켜야 할지 도저히 감이 안잡혔는데 이런것이 있는것을 알려주셔서 감사합니다.    TuTanKhamen   2016.3.8 16:29     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close