Can anyone please explain why I'm getting a NullPointerException when I try to register a user and save his details to the database?
Here is the xml file, which just asks for the user's details
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/eT_R_userName"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:ems="10"
        android:hint="User Name"
        android:inputType="textPersonName" >
        <requestFocus />
    </EditText>
    <EditText
        android:id="@+id/eT_R_email"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:ems="10"
        android:hint="Email"
        android:inputType="textEmailAddress" />
    <EditText
        android:id="@+id/eT_R_password"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:ems="10"
        android:hint="Password"
        android:inputType="textPassword" />
    <Button
        android:id="@+id/btn_R_register"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:onClick="Login"
        android:text="Register" />
</LinearLayout>
onClick Listener
Button btn_register = (Button)findViewById(R.id.btn_R_register);
btn_register.setOnClickListener(new View.OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
        //insert user profile data into database
        final String Name = user_name.getText().toString();
        final String Email = email.getText().toString();
        final String Password = password.getText().toString();
        //Debug
        System.out.println(">>>onClick1---> Register User\nName: " + Name + "\nEmail: " + Email + "\nPassword: " + Password);
        //Method
        insert(Name, Email, Password);
    }
});
Method to insert data, the NullPointerException occurs here
    public void insert(String Name, String Email, String Password)
    {
        //Debug
        System.out.println(">>>Method---> insert user data into Database\n" + Name + "\n" + Email + "\n" + Password);
        db.insertData(Name, Email, Password);
}
The Database stuff looks like this
public static final String USER_ID = "email";
public static final String USER_NAME = "user_name";
public static final String PASSWORD = "password";
public static final String DATABASE_NAME = "molo.db";
public static final String DATABASE_TABLE = "user_profile";
private static final int DATABASE_VERSION = 1;
//SQL to create new database
private static final String DATABASE_CREATE = 
        "create table " + DATABASE_TABLE +
        " (" +
        USER_ID + " text not null, " +
        USER_NAME + " text not null, " +
        PASSWORD + " text not null);";
and this
public void insertData(String user_ID, String user_Name, String Password)
{
    // Put these elements in the User Profile table
    ContentValues element = new ContentValues();
    element.put(com.example.molo.UserDB.USER_ID, user_ID);
    element.put(com.example.molo.UserDB.USER_NAME, user_Name);
    element.put(com.example.molo.UserDB.PASSWORD, Password);
    database.insert(com.example.molo.UserDB.DATABASE_TABLE, null, element);
}
 
    