I have tried to follow this guide[guide](http://www.technotalkative.com/android-multi-column-listview/), to make a ListView with two items in each row. I have tried to adapt it to my app.

The problem is that I get a NullPointerException:

> 
> 04-04 10:39:44.502: E/AndroidRuntime(6702): FATAL EXCEPTION: main
>  04-04 10:39:44.502: E/AndroidRuntime(6702): Process:
>  com.example.julegaveliste2, PID: 6702 04-04 10:39:44.502:
>  E/AndroidRuntime(6702): java.lang.NullPointerException 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  com.example.julegaveliste2.listviewAdapter.getCount(listviewAdapter.java:32)
>  04-04 10:39:44.502: E/AndroidRuntime(6702): at
>  android.widget.ListView.setAdapter(ListView.java:480) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  com.example.julegaveliste2.MainActivity.visliste(MainActivity.java:63)
>  04-04 10:39:44.502: E/AndroidRuntime(6702): at
>  com.example.julegaveliste2.MainActivity$1.onClick(MainActivity.java:131)
>  04-04 10:39:44.502: E/AndroidRuntime(6702): at
>  android.view.View.performClick(View.java:4424) 04-04 10:39:44.502:
>  E/AndroidRuntime(6702): at
>  android.view.View$PerformClick.run(View.java:18383) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  android.os.Handler.handleCallback(Handler.java:733) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  android.os.Handler.dispatchMessage(Handler.java:95) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  android.os.Looper.loop(Looper.java:137) 04-04 10:39:44.502:
>  E/AndroidRuntime(6702): at
>  android.app.ActivityThread.main(ActivityThread.java:4998) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  java.lang.reflect.Method.invokeNative(Native Method) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  java.lang.reflect.Method.invoke(Method.java:515) 04-04 10:39:44.502:
>  E/AndroidRuntime(6702): at
>  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
>  04-04 10:39:44.502: E/AndroidRuntime(6702): at
>  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 04-04
>  10:39:44.502: E/AndroidRuntime(6702): at
>  dalvik.system.NativeStart.main(Native Method)
> 
> 
> 

This is MainActivity.java:

```
package com.example.julegaveliste2;
import static com.example.julegaveliste2.Constant.FIRST_COLUMN;
import static com.example.julegaveliste2.Constant.SECOND_COLUMN;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity{
    DatabaseHelper db;
    Button Les_database;
    Button Knapp_LeggTill;
    Button SlettTabell;

    private ArrayList<HashMap> list;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button Knapp_LeggTill = (Button)findViewById(R.id.Knapp_LeggTill);
        Button Les_database = (Button)findViewById(R.id.Les_database);
        Button SlettTabell = (Button)findViewById(R.id.SlettTabell);
        Knapp_LeggTill.setOnClickListener(myhandler);
        Les_database.setOnClickListener(myhandler);
        SlettTabell.setOnClickListener(myhandler);

    }

    public static void LagTabell(SQLiteDatabase db)
    {
        ContentValues jul = new ContentValues();
        jul.put("person", "Ida");
        jul.put("gave", "blomst");
        db.insert("julegaveliste2", "person", jul); 

        jul.put("person", "Lars");
        jul.put("gave", "film");
        db.insert("julegaveliste2", "person", jul); 

    }

    public void visliste(SQLiteDatabase db)
    {       
        final String person = "db.rawQuery('SELECT person FROM julegaveliste2', null)";
        final String gave = "db.rawQuery('SELECT gave FROM julegaveliste2', null)";

        ListView lview = (ListView) findViewById(R.id.listview);
        listviewAdapter adapter = new listviewAdapter(this, list);
        lview.setAdapter(adapter);

        list = new ArrayList<HashMap>();

        HashMap temp = new HashMap();
        temp.put(FIRST_COLUMN, person);
        temp.put(SECOND_COLUMN, gave);
        list.add(temp);

    }
    public void slett_tabell(SQLiteDatabase db)
    {
        db.delete("julegaveliste2",null, null);

        Context context = getApplicationContext();
        CharSequence text = "Tabellen julegaveliste2 er slettet";
        int duration = Toast.LENGTH_SHORT;
        Toast toast = Toast.makeText(context, text, duration);
        toast.show();
    }

    public void StartAddUser()
    {
        Intent intent = new Intent(this, AddUser.class);
        startActivity(intent);
        Context context = getApplicationContext();
        Toast toast = Toast.makeText(context, "Starter AddUser", Toast.LENGTH_SHORT);
        toast.show();
    }

    View.OnClickListener myhandler = new View.OnClickListener()
    {
        public void onClick(View v)
        {
            final DatabaseHelper db = new DatabaseHelper(MainActivity.this);

             switch(v.getId()) {
             case R.id.SlettTabell:
                 slett_tabell(db.getWritableDatabase());
               break;
             case R.id.Les_database:
                 visliste(db.getWritableDatabase());
               break;
             case R.id.Knapp_LeggTill:
                 StartAddUser();
               break;
           }
        }
    };

    @Override
    protected void onDestroy()
        {
            super.onDestroy();
        }

}

```

This is listviewAdapter.java:

```
package com.example.julegaveliste2;

import static com.example.julegaveliste2.Constant.FIRST_COLUMN;
import static com.example.julegaveliste2.Constant.SECOND_COLUMN;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class listviewAdapter extends BaseAdapter
{

    public ArrayList<HashMap> list;
    Activity activity;

    public listviewAdapter(Activity activity, ArrayList<HashMap> list)
    {
        super();
        this.activity = activity;
        this.list = list;
    }

    @Override
    public int getCount()
    {
        return list.size();
    }

    @Override
    public Object getItem(int position)
    {
        return list.get(position);
    }

    @Override
    public long getItemId(int position)
    {
        return 0;
    }

    private class ViewHolder
    {
        TextView txtFirst;
        TextView txtSecond;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        ViewHolder holder;
        LayoutInflater inflater = activity.getLayoutInflater();

        if (convertView == null)
        {
            convertView = inflater.inflate(R.layout.listview_row, null);
            holder = new ViewHolder();
            holder.txtFirst = (TextView) convertView.findViewById(R.id.FirstText);
            holder.txtSecond = (TextView) convertView.findViewById(R.id.SecondText);
        }
        else
        {
            holder = (ViewHolder) convertView.getTag();
        }

        HashMap map = list.get(position);
        String petter1 = (String) map.get(FIRST_COLUMN);
        String petter2 = (String) map.get(SECOND_COLUMN);

        holder.txtFirst.setText(petter1);
        holder.txtSecond.setText(petter2);

        return convertView;
    }

}

```