-1

Here is my adapter:

public class PlaceAdapter extends BaseAdapter {

    private Context mContext;
    private ArrayList<Place> mPlacesList;
    private ListItemClickListener mClickListener;

    public PlaceAdapter(Context mContext, ArrayList<Place> mCategoryList) {
        this.mContext = mContext;
        this.mPlacesList = mCategoryList;
        // TODO Auto-generated constructor stub
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mPlacesList.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return mPlacesList.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    public void setItemClickAndLongClick(ListItemClickListener clickListener) {
        mClickListener = clickListener;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder viewHolder;
        final int i = position;
        if (convertView == null) {
            // inflate the GridView item layout
            LayoutInflater inflater = LayoutInflater.from(mContext);
            convertView = inflater.inflate(R.layout.adapter_places, parent, false);
            convertView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    mClickListener.onItemClick(i);
                }
            });

            convertView.setOnLongClickListener(new View.OnLongClickListener() {

                @Override
                public boolean onLongClick(View v) {
                    // TODO Auto-generated method stub
                    mClickListener.onItemLongCLick(i);
                    return false;
                }
            });
            // initialize the view holder
            viewHolder = new ViewHolder();
            viewHolder.mIcon = (ImageView) convertView.findViewById(R.id.place_icon);
            viewHolder.mName = (TextView) convertView.findViewById(R.id.place_name);
            viewHolder.mAddress = (TextView) convertView.findViewById(R.id.place_address);
            viewHolder.mDistance = (TextView) convertView.findViewById(R.id.place_distance);
            convertView.setTag(viewHolder);
        } else {
            // recycle the already inflated view
            viewHolder = (ViewHolder) convertView.getTag();
        }

        // update the item view
        viewHolder.mName.setText(mPlacesList.get(position).getName());

        if (mPlacesList.get(position).getAddress() != null) {
            Log.e("TEST", mPlacesList.get(position).getAddress());
            viewHolder.mAddress.setText(mPlacesList.get(position).getAddress());
        }else{
            viewHolder.mAddress.setVisibility(View.INVISIBLE);
        }
    }

    public static class ViewHolder {
        private ImageView mIcon;
        private TextView mName;
        private TextView mAddress;
        private TextView mDistance;

        public ImageView getIcon() {
            return mIcon;
        }

        public TextView getName() {
            return mName;
        }

        public TextView getAddress() {
            return mAddress;
        }

        public TextView getDistance() {
            return mAddress;
        }

    }
}

And here is exception I got:

01-05 23:37:32.540: E/TEST(2486): 15C4 Thi Sách Street, District 1, Ho Chi Minh City
01-05 23:37:32.548: E/AndroidRuntime(2486): FATAL EXCEPTION: main
01-05 23:37:32.548: E/AndroidRuntime(2486): Process: com.example.finalproject, PID: 2486
01-05 23:37:32.548: E/AndroidRuntime(2486): java.lang.NullPointerException
01-05 23:37:32.548: E/AndroidRuntime(2486):     at com.example.finalproject.adapter.PlaceAdapter.getView(PlaceAdapter.java:97)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.AbsListView.obtainView(AbsListView.java:2255)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.ListView.makeAndAddView(ListView.java:1790)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.ListView.fillDown(ListView.java:691)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.ListView.fillFromTop(ListView.java:752)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.ListView.layoutChildren(ListView.java:1616)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.AbsListView.onLayout(AbsListView.java:2087)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.View.layout(View.java:14817)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewGroup.layout(ViewGroup.java:4631)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.View.layout(View.java:14817)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewGroup.layout(ViewGroup.java:4631)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.View.layout(View.java:14817)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewGroup.layout(ViewGroup.java:4631)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.View.layout(View.java:14817)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewGroup.layout(ViewGroup.java:4631)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.View.layout(View.java:14817)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewGroup.layout(ViewGroup.java:4631)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.View.layout(View.java:14817)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewGroup.layout(ViewGroup.java:4631)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1983)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1740)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.Choreographer.doCallbacks(Choreographer.java:574)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.Choreographer.doFrame(Choreographer.java:544)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.os.Handler.handleCallback(Handler.java:733)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.os.Handler.dispatchMessage(Handler.java:95)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.os.Looper.loop(Looper.java:136)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at android.app.ActivityThread.main(ActivityThread.java:5001)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at java.lang.reflect.Method.invokeNative(Native Method)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at java.lang.reflect.Method.invoke(Method.java:515)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
01-05 23:37:32.548: E/AndroidRuntime(2486):     at dalvik.system.NativeStart.main(Native Method)

As you can see, I got the text successfully from my Place object but I dont know why I got this exception. It's really weird. Please help me! Thank you in advance!

Bụng Bự
  • 513
  • 1
  • 7
  • 14

1 Answers1

1

I figured out the problem, I have declared wrong id in my xml layout file. Sorry everybody for this silly question (; ̄Д ̄)

Bụng Bự
  • 513
  • 1
  • 7
  • 14