title: I have a spinner that gets its items dynamically with an EditText. It is stored into SQLite. How do I add a single item on the start?
body: <p>I am trying to add a single item that holds no value to the Spinner.  I want the users to see , "Choose an Item" whenever the activity is started.  How do I add a single item to the spinner in onCreate? Keep in mind the users can add items to the spinner dynamically with a button and edit text.  Rite now the first thing in the spinner is the first item added to the database. If nothing is added to the database, the spinner is blank.  </p>
  
  <p>Here is my code</p>
  
  <p>MainActivty</p>
  
  <pre><code>public class MainActivity extends Activity implements OnItemSelectedListener {
  
  Button AddBtn;
  EditText et;
  EditText cal;
  Spinner spn;
  
  SQLController SQLcon;
  ProgressDialog PD;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      AddBtn = (Button) findViewById(R.id.addbtn_id);
      et = (EditText) findViewById(R.id.et_id);
      cal = (EditText) findViewById(R.id.et_cal);
      spn = (Spinner) findViewById(R.id.spinner_id);
      spn.setOnItemSelectedListener(this);
      SQLcon = new SQLController(this);
      // opening database
      SQLcon.open();
  
      loadtospinner();
  
      AddBtn.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View v) {
  
              new MyAsync().execute();
  
          }
      });
  }
  
  public void loadtospinner() {
  
      Cursor c = SQLcon.readData();
      ArrayList&lt;String&gt; al = new ArrayList&lt;String&gt;();
  
      c.moveToFirst();
      while (!c.isAfterLast()) {
  
          String name = c.getString(c.getColumnIndex(DBhelper.MEMBER_NAME));
  
          al.add(name);
  
          c.moveToNext();
      }
  
      ArrayAdapter&lt;String&gt; aa1 = new ArrayAdapter&lt;String&gt;(
              getApplicationContext(), R.layout.spinner_item, R.id.textView1,
              al);
  
      spn.setAdapter(aa1);
  
      // closing database
      SQLcon.close();
  
  }
  
  private class MyAsync extends AsyncTask&lt;Void, Void, Void&gt; {
  
      @Override
      protected void onPreExecute() {
  
          super.onPreExecute();
          PD = new ProgressDialog(MainActivity.this);
          PD.setTitle("Please Wait..");
          PD.setMessage("Loading...");
          PD.setCancelable(false);
          PD.show();
      }
  
      @Override
      protected Void doInBackground(Void... params) {
          String name = et.getText().toString();
          String calories = cal.getText().toString();
          // opening database
          SQLcon.open();
          // insert data into table
          SQLcon.insertData(name, calories);
  
          return null;
      }
  
      @Override
      protected void onPostExecute(Void result) {
          super.onPostExecute(result);
          loadtospinner();
          PD.dismiss();
      }
  }
  
  @Override
  public void onItemSelected(AdapterView&lt;?&gt; parent, View view, int position,
          long id) {
  
      String getName;
      getName = "";
      String getCalories;
      getCalories = "";
  
      SQLController handlerInfo = new SQLController(getBaseContext());
      handlerInfo.open();
      Cursor cursor = handlerInfo.readData();
      if (cursor.moveToFirst()) {
          do {
              getName = cursor.getString(1);
              getCalories = cursor.getString(2);
  
          } while (cursor.moveToNext());
      }
  
      handlerInfo.close();
  
      // Showing selected spinner item
      Toast.makeText(parent.getContext(), "You selected: " + getCalories,
              Toast.LENGTH_LONG).show();
  
  }
  
  @Override
  public void onNothingSelected(AdapterView&lt;?&gt; arg0) {
      // TODO Auto-generated method stub
  
  }
  
  }
  </code></pre>
  
  <p>Database and helper</p>
  
  <pre><code>public class DBhelper extends SQLiteOpenHelper {
  
  // TABLE INFORMATTION
  public static final String TABLE_MEMBER = "member";
  public static final String MEMBER_ID = "_id";
  public static final String MEMBER_NAME = "name";
  public static final String KEY_CALORIES = "calories";
  
  // DATABASE INFORMATION
  static final String DB_NAME = "MEMBER.DB";
  static final int DB_VERSION = 2;
  
  // TABLE CREATION STATEMENT
  private static final String CREATE_TABLE = "create table " + TABLE_MEMBER
          + "(" + MEMBER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
          + MEMBER_NAME + " TEXT NOT NULL," + KEY_CALORIES
          + " INT NOT NULL);";
  
  public DBhelper(Context context) {
      super(context, DB_NAME, null, DB_VERSION);
  }
  
  @Override
  public void onCreate(SQLiteDatabase db) {
      db.execSQL(CREATE_TABLE);
  }
  
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // TODO Auto-generated method stub
  
      db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBER);
      onCreate(db);
  }
  }
  </code></pre>
  
  <p>Database and helper</p>
  
  <pre><code>public class SQLController {
  private DBhelper dbhelper;
  private Context ourcontext;
  private SQLiteDatabase database;
  
  public SQLController(Context c) {
      ourcontext = c;
  }
  
  public SQLController open() throws SQLException {
      dbhelper = new DBhelper(ourcontext);
      database = dbhelper.getWritableDatabase();
      return this;
  
  }
  
  public void close() {
      dbhelper.close();
  }
  
  public void insertData(String name, String calories) {
      ContentValues cv = new ContentValues();
      cv.put(DBhelper.MEMBER_NAME, name);
      cv.put(DBhelper.KEY_CALORIES, calories);
      database.insert(DBhelper.TABLE_MEMBER, null, cv);
  }
  
  public Cursor readData() {
      String[] allColumns = new String[] { DBhelper.MEMBER_ID,
              DBhelper.MEMBER_NAME, DBhelper.KEY_CALORIES };
      Cursor c = database.query(DBhelper.TABLE_MEMBER, allColumns, null,
              null, null, null, null);
      if (c != null) {
          c.moveToFirst();
      }
      return c;
  }
  
  }
  </code></pre>