samedi 20 février 2016

How can I add a delete function to my Sqlite Database?

I am building a training log that uses an sqlite database to save what the user inputs. Currently, I only have an add method that appends to the database, but am unsure as to how to create a delete method that removes the row created. The user data is initially created and added in TrainingLogCreate (class), which accesses DBAdapter's (Class) add method. What can I add to my remove method in DBAdapter to be able to remove a user entry?

TrainingLogCreate:

public class TrainingLogCreate extends AppCompatActivity {


EditText nameTxt;
EditText posTxt;
Button savebtn;
Context context = this;

public TrainingLogCreate() {
    // Required empty public constructor
}



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.training_log_create);

    savebtn = (Button) findViewById(R.id.saveButton);
    nameTxt = (EditText) findViewById(R.id.exercizeActivity);
    posTxt = (EditText) findViewById(R.id.exercizeDetails);
    final DBAdapter db = new DBAdapter(this);

    SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
    String datetime;
    try {
        Date date = new Date();
        datetime = dateFormat.format(date);


    } finally {

    }

    final String dateTxt = datetime;

    savebtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            // TODO Auto-generated method stub


            //OPEN
            db.openDB();

            //INSERT
            long result = db.add(nameTxt.getText().toString(), posTxt.getText().toString(), dateTxt.toString());

            if (result > 0) {
                nameTxt.setText("");
                posTxt.setText("");

            } else {
                Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_SHORT).show();
            }


            //CLOSE DB
            db.close();

            //Open Fragment


            finish();

        }
    });


}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater mif = getMenuInflater();
    mif.inflate(R.menu.training_create_menu, menu);
    getActionBar().show();
    return super.onCreateOptionsMenu(menu);




}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // handle item selection
    switch (item.getItemId()) {
        case R.id.action_save:
            //add save functionality
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}


}

DBAdapter:

    public class DBAdapter {

    //COLUMNS
    static final String ROWID="id";
    static final String NAME = "name";
    static final String POSITION = "position";
    static final String DATE = "date";

    //DB PROPERTIES
    static final String DBNAME="m_DB";
    static final String TBNAME="m_TB";
    static final int DBVERSION='1';

    static final String CREATE_TB="CREATE TABLE m_TB(id INTEGER PRIMARY KEY AUTOINCREMENT,"
            + "name TEXT NOT NULL,position TEXT NOT NULL,date TEXT NOT NULL);";

    final Context c;
    SQLiteDatabase db;
    DBHelper helper;

    public DBAdapter(FragmentActivity ctx) {
        // TODO Auto-generated constructor stub

        this.c=ctx;
        helper=new DBHelper(c);
    }

    // INNER HELPER DB CLASS
    private static class DBHelper extends SQLiteOpenHelper
    {

        public DBHelper(Context context ) {
            super(context, DBNAME, null, DBVERSION);
            // TODO Auto-generated constructor stub
        }

        @Override
        public void onCreate(SQLiteDatabase db) {

            try
            {
                db.execSQL(CREATE_TB);
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub

            Log.w("DBAdapetr","Upgrading DB");

            db.execSQL("DROP TABLE IF EXISTS m_TB");

            onCreate(db);
        }

    }

    // OPEN THE DB
    public DBAdapter openDB()
    {
        try
        {
            db=helper.getWritableDatabase();

        }catch(SQLException e)
        {
            Toast.makeText(c, e.getMessage(), Toast.LENGTH_LONG).show();
        }

        return this;
    }


    //CLOSE THE DB
    public void close()
    {
        helper.close();
    }

    //INSERT INTO TABLE
    public long add(String name,String pos, String date)
    {
        try
        {
            ContentValues cv=new ContentValues();
            cv.put(NAME, name);
            cv.put(POSITION, pos);
            cv.put(DATE, date);

            return db.insert(TBNAME, ROWID, cv);

        }catch(SQLException e)
        {
            e.printStackTrace();
        }

        return 0;
    }

    //REMOVE FROM TABLE
    public long remove(String name)
    {




    }


    //GET ALL VALUES

    public Cursor getAllNames()
    {
        String[] columns={ROWID,NAME,POSITION,DATE};

        return db.query(TBNAME, columns, null, null, null, null, null);
    }





}

Aucun commentaire:

Enregistrer un commentaire