title: How to call an Add Method in a Database Handler Class
body: <p>Hey so this is my first post but I am absolutely stuck. Either I don't understand database (which i really am kinda slapping this together to try and learn) I have created a basic CRUD DBHandlerclass with a method to add a plane. and a Activity that allows the user to input the info to save to the database.  I really appriciate any pointers, hints, or if you can show me a good tutorial. the tutorial that I used to build this database I found at <a href="http://mobilesiri.com/android-sqlite-database-tutorial-using-android-studio/" rel="nofollow">http://mobilesiri.com/android-sqlite-database-tutorial-using-android-studio/</a></p>
  
  <p>here is the DBHandler class.</p>
  
  <pre><code>   public class DBHandler extends SQLiteOpenHelper {
  
  //Database Version
  private static final int DATABASE_VERSION = 1;
  //Database Name
  private static final String DATABASE_NAME = "avtoolsInfo";
  //Plane info table name
  private static final String TABLE_PLANES = "planeInfo";
  // planes table Columns names
  private static final String KEY_ID = "id";
  private static final String KEY_NAME = "name";
  private static final String KEY_TYPE = "type";
  private static final String KEY_PLANE_CLASS = "plane_class";
  private static final String KEY_FUEL_STYLE = "fuel_style";
  private static final String KEY_NOTES = "notes";
  
  
  
  
  public DBHandler(Context context) {
      super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }
  
  @Override
  public void onCreate(SQLiteDatabase db) {
      String CREATE_PLANE_TABLE = "CREATE TABLE " + TABLE_PLANES + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_TYPE + " TEXT," + KEY_PLANE_CLASS + " TEXT," + KEY_FUEL_STYLE + " TEXT," + KEY_NOTES + " TEXT" + ")";
      db.execSQL(CREATE_PLANE_TABLE);
  }
  
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
      //Drop older table if existed
      db.execSQL("DROP TABLE IF EXISTS " + TABLE_PLANES);
      //Creating tables again
      onCreate(db);
  }
  
  // Adding a new plane
  public void addPlane(PlaneInfo planeInfo)
  {
      SQLiteDatabase db = this.getWritableDatabase();
      ContentValues values = new ContentValues();
      values.put(KEY_NAME, planeInfo.getName()); //plane name
      values.put(KEY_TYPE, planeInfo.getType()); //plane type
      values.put(KEY_PLANE_CLASS, planeInfo.getPlaneClass()); //plane class
      values.put(KEY_FUEL_STYLE, planeInfo.getFuelStyle());//plane fuel style
      values.put(KEY_NOTES, planeInfo.getNotes());//plane notes
  // Inserting Row
      db.insert(TABLE_PLANES, null, values);
  // Closeing Database
      db.close();
  </code></pre>
  
  <p>Here is the activity to add.   [edit. this is the layout file]</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>&lt;RelativeLayout
      android:layout_width="fill_parent"
      android:layout_height="match_parent"
      android:layout_marginTop="?attr/actionBarSize"
      android:orientation="vertical"
      android:paddingLeft="20dp"
      android:paddingRight="20dp"
      android:paddingTop="60dp"&gt;
  
  &lt;android.support.design.widget.TextInputLayout
      android:id="@+id/input_layout_plane_name"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"&gt;
  
      &lt;EditText
          android:id="@+id/input_plane_name"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:hint="@string/plane_name"
          android:maxLines="1" /&gt;
  
  &lt;/android.support.design.widget.TextInputLayout&gt;
  
  &lt;android.support.design.widget.TextInputLayout
      android:id="@+id/input_plane_type"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_below="@id/input_layout_plane_name"&gt;
  
      &lt;EditText
          android:id="@+id/plane_type"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:hint="@string/plane_type" /&gt;
  
  &lt;/android.support.design.widget.TextInputLayout&gt;
  
      &lt;TextView
          android:id="@+id/plane_class_text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@id/input_plane_type"
          android:layout_alignParentLeft="true"
          android:text="@string/plane_class_textview"/&gt;
  
      &lt;Spinner
          android:id="@+id/spinner"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@id/plane_class_text"
          android:layout_below="@id/input_plane_type"
          &gt;&lt;/Spinner&gt;
  
      &lt;TextView
          android:id="@+id/fuel_style"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@id/spinner"
          android:text="@string/fueling_type_textview"/&gt;
      &lt;Spinner
          android:id="@+id/spinner2"
          android:layout_below="@id/spinner"
          android:layout_toRightOf="@id/fuel_style"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"&gt;
  
  
      &lt;/Spinner&gt;
  
  
  
  
  
      &lt;Button
          android:id="@+id/save_button"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentBottom="true"
          android:text="@string/save_button"
          android:onClick="addPlane"/&gt;
  
      &lt;android.support.design.widget.TextInputLayout
          android:id="@+id/input_plane_notes"
          android:layout_alignParentBottom="false"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_below="@id/spinner2"
          android:layout_above="@id/save_button"&gt;
  
          &lt;EditText
              android:id="@+id/plane_notes"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="@string/plane_user_notes" /&gt;
  
      &lt;/android.support.design.widget.TextInputLayout&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p></p>
  
  <p>I really apriciate all the help. </p>
  
  <p>[edit here is the add class]</p>
  
  <pre><code>    package com.example.jerem.avtools;
  
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.support.v7.graphics.drawable.DrawerArrowDrawable;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.Spinner;
  import android.widget.Toast;
  
  public class AddNewPlane extends AppCompatActivity {
  
      Spinner spinner2;
      Spinner spinner;
      ArrayAdapter&lt;CharSequence&gt; adapter;
      ArrayAdapter&lt;CharSequence&gt; adapter2;
  
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_add_new_plane);
          spinner = (Spinner) findViewById(R.id.spinner);
          adapter = ArrayAdapter.createFromResource(this,R.array.plane_class_spinner_data,android.R.layout.simple_spinner_item);
          adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          spinner.setAdapter(adapter);
          spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
              @Override
              public void onItemSelected(AdapterView&lt;?&gt; parent, View view, int position, long id) {
  
                  Toast.makeText(getBaseContext(),parent.getItemAtPosition(position)+" is selected",Toast.LENGTH_SHORT).show();
              }
  
              @Override
              public void onNothingSelected(AdapterView&lt;?&gt; parent) {
  
              }
          });
  
          spinner2 = (Spinner) findViewById(R.id.spinner2);
          adapter2 = ArrayAdapter.createFromResource(this,R.array.fueling_styles,android.R.layout.simple_spinner_item);
          adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          spinner2.setAdapter(adapter2);
      }
  }
  </code></pre>