title: Android - Gridview with Icon and text
body: <p>I am trying to add images to a gridview with a text label under each picture. When I run the code it allways force closes. I can't work out what is wrong with the code.</p>
  
  <pre><code>package com.petedroid.euro2012;
  
  import android.app.Activity;
  import android.content.Context;
  import android.os.Bundle;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.BaseAdapter;
  import android.widget.GridView;
  import android.widget.ImageView;
  import android.widget.TextView;
  
  public class psquads extends Activity 
  {
  
  
  @Override
  public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  
    GridView gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(new ImageAdapter(this));
  }
  
  
  public class ImageAdapter extends BaseAdapter
  {
     private Context mContext;
  
     public ImageAdapter(Context c) {
        mContext = c;
    }
  
    public int getCount() {
        return mThumbIds.length;              
    }
  
    public Object getItem(int position) {
        return null;
    }
  
    public long getItemId(int position) {
        return 0;
    }
  
    public View getView(int position, View convertView, ViewGroup parent){
        View MyView = convertView;
        if (convertView == null) {
  
            //Inflate Layout
            LayoutInflater li = getLayoutInflater();
            MyView = li.inflate(R.layout.griditem, null);
  
            //Get Image
            ImageView iv = (ImageView)MyView.findViewById(R.id.grid_item_image);
            iv.setImageResource(mThumbIds[position]);
  
            //Get Text
            TextView tv = (TextView)MyView.findViewById(R.id.grid_item_text);
            tv.setText(names[position] );
        }  
  
       return MyView;
    }
  
  
   }
  
   //Images
   private Integer[] mThumbIds = {
          R.drawable.croatia, R.drawable.republic,
          R.drawable.denmark, R.drawable.england,
          R.drawable.france, R.drawable.germany,
          R.drawable.greece, R.drawable.ireland,
          R.drawable.italy, R.drawable.netherlands,
          R.drawable.poland, R.drawable.portugal,
          R.drawable.russia, R.drawable.spain,
          R.drawable.sweden, R.drawable.ukraine,};
  
   //Text
   private String[] names={
         "Croatia","Czech Republic","Denmark", "England",
         "France","Germany","Greece", "Ireland", 
         "Italy", "Netherlands", "Poland", "Portugal", 
         "Russia", "Spain", "Sweden", "Ukraine", };
  }
  </code></pre>
  
  <p>Here are the logs</p>
  
  <pre><code>04-21 00:07:33.384: E/global(27521): Deprecated Thread methods are not supported.
  04-21 00:07:33.384: E/global(27521): java.lang.UnsupportedOperationException
  04-21 00:07:33.384: E/global(27521):    at java.lang.VMThread.stop(VMThread.java:85)
  04-21 00:07:33.384: E/global(27521):    at java.lang.Thread.stop(Thread.java:1379)
  04-21 00:07:33.384: E/global(27521):    at java.lang.Thread.stop(Thread.java:1344)
  04-21 00:07:33.384: E/global(27521):    at com.petedroid.euro2012.SplashScreenActivity$1.run(SplashScreenActivity.java:35)
  04-21 00:07:35.368: D/AndroidRuntime(27521): Shutting down VM
  04-21 00:07:35.368: W/dalvikvm(27521): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0)
  04-21 00:07:35.380: E/AndroidRuntime(27521): FATAL EXCEPTION: main
  04-21 00:07:35.380: E/AndroidRuntime(27521): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.petedroid.euro2012/com.petedroid.euro2012.psquads}: java.lang.NullPointerException
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.os.Handler.dispatchMessage(Handler.java:99)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.os.Looper.loop(Looper.java:123)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.ActivityThread.main(ActivityThread.java:4627)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at java.lang.reflect.Method.invokeNative(Native Method)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at java.lang.reflect.Method.invoke(Method.java:521)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at dalvik.system.NativeStart.main(Native Method)
  04-21 00:07:35.380: E/AndroidRuntime(27521): Caused by: java.lang.NullPointerException
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at com.petedroid.euro2012.psquads.onCreate(psquads.java:24)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
  04-21 00:07:35.380: E/AndroidRuntime(27521):    ... 11 more
  04-21 00:08:14.755: I/dalvikvm(27521): threadid=3: reacting to signal 3
  04-21 00:08:17.415: E/dalvikvm(27521): Failed to write stack traces to /data/anr/traces.txt (-1 of 2650): Math result not representable
  04-21 00:08:26.317: I/Process(27521): Sending signal. PID: 27521 SIG: 9 
  </code></pre>