Adapter에서 오류가 나는 것 같아 소스코드하고 logcat 같이 올려요 ㅠㅠ

꼭 좀 도와주세요.. 초보자라 잘 모르겠네요 ~


package org.androidtown.offera;


import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.util.Log;

import android.view.View.OnClickListener;

import android.app.ListActivity;

import android.content.Context;

import android.content.Intent;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.TextView;

import android.content.Intent;

 

public class IconTextListAdapter extends BaseAdapter {

 

    private Context mContext;

 

    private List<IconTextItem> mItems = new ArrayList<IconTextItem>();

    private Button msgBtn = null;

 

    public IconTextListAdapter(Context context) {

        mContext = context;

    }

 

    public void addItem(IconTextItem it) {

        mItems.add(it);

    }

 

    public void setListItems(List<IconTextItem> lit) {

        mItems = lit;

    }

 

    public int getCount() {

        return mItems.size();

    }

 

    public Object getItem(int position) {

        return mItems.get(position);

    }

 

    public boolean areAllItemsSelectable() {

        return false;

    }

 

    public boolean isSelectable(int position) {

        try {

            return mItems.get(position).isSelectable();

        } catch (IndexOutOfBoundsException ex) {

            return false;

        }

    }

 

    public long getItemId(int position) {

        return position;

    }

   

    class ViewHolder{

    TextView text1;

    TextView text2;

    Button button3;

    Button button4;

    }

    

    public View getView(int position, View convertView, ViewGroup parent) {

       IconTextView itemView;

       ViewHolder holder;

           if (convertView == null) {

               itemView = new IconTextView(mContext, mItems.get(position));

               holder = new ViewHolder();

               holder.text1=(TextView)convertView.findViewById(R.id.dataItem01);

               holder.text2=(TextView)convertView.findViewById(R.id.dataItem02);

               holder.button3=(Button)convertView.findViewById(R.id.dataItem03);

               holder.button4=(Button)convertView.findViewById(R.id.dataItem04);

               holder.button3.setOnClickListener(new OnClickListener(){

               public void onClick(View v){

               Intent my = new Intent(mContext, MessagePage.class);

               mContext.startActivity(my);     

               }

               });

               holder.text1.setText(((IconTextItem) mItems).getData(position));

               holder.text2.setText(((IconTextItem) mItems).getData(position));

               holder.button3.setText(((IconTextItem) mItems).getData(position));

               holder.button4.setText(((IconTextItem) mItems).getData(position));

           } else {

               itemView = (IconTextView) convertView;

                

               itemView.setIcon(mItems.get(position).getIcon());

               itemView.setText(0, mItems.get(position).getData(0));

               itemView.setText(1, mItems.get(position).getData(1));

               itemView.setText(2, mItems.get(position).getData(2));

           }

    

           return itemView;

    }

}


06-12 17:35:12.561: E/AndroidRuntime(279): FATAL EXCEPTION: main

06-12 17:35:12.561: E/AndroidRuntime(279): java.lang.NullPointerException

06-12 17:35:12.561: E/AndroidRuntime(279): at org.androidtown.offera.IconTextListAdapter.getView(IconTextListAdapter.java:74)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.AbsListView.obtainView(AbsListView.java:1315)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.ListView.makeAndAddView(ListView.java:1727)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.ListView.fillDown(ListView.java:652)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.ListView.fillFromTop(ListView.java:709)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.ListView.layoutChildren(ListView.java:1580)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.AbsListView.onLayout(AbsListView.java:1147)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.View.layout(View.java:7035)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.ViewRoot.performTraversals(ViewRoot.java:1045)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.os.Handler.dispatchMessage(Handler.java:99)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.os.Looper.loop(Looper.java:123)

06-12 17:35:12.561: E/AndroidRuntime(279): at android.app.ActivityThread.main(ActivityThread.java:4627)

06-12 17:35:12.561: E/AndroidRuntime(279): at java.lang.reflect.Method.invokeNative(Native Method)

06-12 17:35:12.561: E/AndroidRuntime(279): at java.lang.reflect.Method.invoke(Method.java:521)

06-12 17:35:12.561: E/AndroidRuntime(279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

06-12 17:35:12.561: E/AndroidRuntime(279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

06-12 17:35:12.561: E/AndroidRuntime(279): at dalvik.system.NativeStart.main(Native Method)




고수님들 어떻게 고쳐야 하는지 꼭좀 부탁드려요!!