안녕하세요.. 일단 관련된 풀소스를 올립니다.

 

------------------------------< ListView_adapter .java>----------------------------------------

class ListView_adapter extends BaseAdapter{
 private Context context;
 private ArrayList<Bean_listView> items;
 private LayoutInflater inflater;

 public ListView_adapter(Context c , ArrayList<Bean_listView> itmes){
  this.context = c;
  this.inflater = LayoutInflater.from(c);
  this.items = items;
 }
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  View v = convertView;
  ViewHolder holder = null;
  Bean_listView pos = items.get(position);
  if (v == null) {
   holder = new ViewHolder();
   v = inflater.inflate(R.layout.custom_listview, null);
   holder.txt1 = (TextView)v.findViewById(R.id.txt1);
   holder.txt2 = (TextView)v.findViewById(R.id.txt2);
   v.setTag(holder);
  }else{
   holder = (ViewHolder) v.getTag();
  }
  holder.txt1.setText(pos.txt1);
  holder.txt2.setText(pos.txt2);
  return v;
 }
 @Override
 public int getCount() {
  return items.size();
 }
 @Override
 public Bean_listView getItem(int position) {
  return items.get(position);
 }
 @Override
 public long getItemId(int position) {
  return position;
 }

 class ViewHolder{
  TextView txt1;
  TextView txt2;
 }
}

 

-----------------------------<Bean_listView.java>-------------------------------------------------------------

public class Bean_listView {
 public String txt1;
 public String txt2;
 public Bean_listView(String txt1, String txt2) {
  this.txt1 = txt1;
  this.txt2 = txt2;
 }
 
 public String getTxt1(){
  return txt1;
 }
 public String getTxt2(){
  return txt2;
 }

}

 

---------------------------------------<메인 입니다.>----------------------------------------------

public class main extends Activity implements ViewPager.OnPageChangeListener{
 private ListView list;
 private ListView_adapter listAdpater;
 private int position;
 private static ViewPager pager;
 private ArrayList<Bean_listView> array;
 private int[] xmlRes = {R.layout.month_one, R.layout.month_two, R.string.month_one, R.string.month_two};
 protected void onCreate(Bundle b){
  super.onCreate(b);
  setContentView(R.layout.common_main);
  
  pager = (ViewPager)findViewById(R.id.pager);
  pager.setAdapter(new mViewPager(this));
  pager.setOnPageChangeListener(this);
  
  array = new ArrayList<Bean_listView>();
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  array.add(new Bean_listView("생일 파티", "2012-08-30"));
  
 }
  class mViewPager extends PagerAdapter{
  private LayoutInflater mInflater;

  public mViewPager(Context con) {
   super();
   mInflater = LayoutInflater.from(con);
  }

  @Override public int getCount() { return xmlRes.length-2; }

  @Override
  public Object instantiateItem(View pager, int position) {
   View v = null;           
   if(position==0){              
    v = mInflater.inflate(xmlRes[0], null);
    list = (ListView)v.findViewById(R.id.listView);
    listAdpater = new ListView_adapter(month.this, array);
    list.setAdapter(listAdpater);
   }else if(position==1){       
    v = mInflater.inflate(xmlRes[1], null);
   }
   ((ViewPager)pager).addView(v, 0);                        
   return v;
  }

  @Override
  public void destroyItem(View pager, int position, Object view) {
   ((ViewPager)pager).removeView((View)view);
  }
  @Override public boolean isViewFromObject(View view, Object obj) { return view == obj; }
  @Override public void finishUpdate(View arg0) {}
  @Override public void restoreState(Parcelable arg0, ClassLoader arg1) {}
  @Override public Parcelable saveState() { return null; }
  @Override public void startUpdate(View arg0) {}
 }
 
 @Override
 public void onPageScrollStateChanged(int arg0) {}
 @Override
 public void onPageScrolled(int arg0, float arg1, int arg2) {}
 @Override
 public void onPageSelected(int pos) {
  position = pos;
  if(position == 0) Common_topMnu.setChgImg(0);
  else    Common_topMnu.setChgImg(1);
 }

 

메인xml입니다.---------------<common_main.xml>--------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <xx.xxxxx.xxxxxx.Common_topMnu
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="7" />
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
</LinearLayout>

 

ViewPager에 넣을 레이아웃입니다.---------------------------<month_one.xml>--------------------------------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="15"
        android:background="#70658B"
        android:orientation="horizontal" >
        <TextView
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:text="제 목"
            android:textColor="#FFFFFF"
            android:textSize="18sp"
            android:layout_weight="1"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:text="행사일"
            android:textColor="#FFFFFF"
            android:textSize="18sp"
            android:layout_weight="1"/>
    </LinearLayout>

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:divider="#D3D3D3"
        android:dividerHeight="0.5dp"
        android:footerDividersEnabled="false"
        android:fadingEdge="none"
        android:padding="0.5dp"
        android:layout_weight="1"/>

</LinearLayout>


에러

08-31 10:13:25.852: E/AndroidRuntime(12282): FATAL EXCEPTION: main
08-31 10:13:25.852: E/AndroidRuntime(12282): java.lang.NullPointerException
08-31 10:13:25.852: E/AndroidRuntime(12282):  at xx.xxxx.xxxx.ListView_adapter.getCount(ListView_adapter.java:42)
08-31 10:13:25.852: E/AndroidRuntime(12282):  at android.widget.ListView.setAdapter(ListView.java:436)
08-31 10:13:25.852: E/AndroidRuntime(12282):  at xx.xxxx.xxxx.main$mViewPager.instantiateItem(main.java:75)
08-31 10:13:25.852: E/AndroidRuntime(12282):  at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)
08-31 10:13:25.852: E/AndroidRuntime(12282):  at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)
08-31 10:13:25.852: E/AndroidRuntime(12282):  at android.support.v4.view.ViewPager.populate(ViewPager.java:783)
08-31 10:13:25.852: E/AndroidRuntime(12282):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)

08-31 10:13:25.852: E/AndroidRuntime(12282):  at xx.xxx.xxxx.xxxx$mViewPager.instantiateItem(main.java:75)

 

커스텀ListView를 Viewpager안에 넣을려니까 오류가 납니다..

BaseAdapter로 구현한 ListView는 문제가 없는거 같은데..

왜 Null이 뜨는지 모르겠습니다.

그리고 list.setAdapter(listAdpater); 이부분이 왜 mViewPager.instantiateItem오류가 나는건가요...

이리저리해봐도 안되네요 ㅠ