lundi 3 août 2015

Saving data to the sqlite database?

This is my main activity and I'm getting exception at 29th line of insertData() in MainActivity method and MyDatabaseAdapter() class contains the schema.Can u please help me with where I'm getting the error?

import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    EditText editText;
    Button button;

   MyDatabaseAdapter myDatabaseAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText=(EditText)findViewById(R.id.editText);
        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name=editText.getText().toString();
                long id=myDatabaseAdapter.insertData(name);
                if(id<0)
                {
                    Toast.makeText(MainActivity.this,"Unsuccessful",Toast.LENGTH_LONG);
                }
                else
                {
                    Toast.makeText(MainActivity.this,"Successfull",Toast.LENGTH_LONG).show();
                }

            }
        });
    }


}

This is my sqlite helper class

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;



public class MyDatabaseAdapter  {

    MyDatabase myDatabase;
    MyDatabaseAdapter(Context context)
    {
        myDatabase=new MyDatabase(context);
    }
    public long insertData(String name)
    {
        SQLiteDatabase sqLiteDatabase=myDatabase.getWritableDatabase();
        ContentValues contentValues=new ContentValues();
        contentValues.put(MyDatabase.NAME,name);
        long id=sqLiteDatabase.insert(myDatabase.TABLE_NAME,null,contentValues);
        return id;
    }

   static class MyDatabase extends SQLiteOpenHelper
   {
       private static final String DATABASE_NAME="Mydatabase";
       private static final int DATABASE_VERSION=3;
       private static final String TABLE_NAME="MyContacts";
       private static final String NAME="Name";
       // private static final String ADDRESS="Address";
       private static final String UID="_id";
       private static final String CREATE_TABLE="CREATE TABLE "+TABLE_NAME+"("+UID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+NAME+" VARCHAR(255),;";
       private static final String DROP_TABLE="DROP TABLE IF EXISTS" +TABLE_NAME;

       public MyDatabase(Context context) {
           super(context, DATABASE_NAME, null, DATABASE_VERSION);
           Toast.makeText(context,"Constructor is called",Toast.LENGTH_LONG).show();
       }

       @Override
       public void onCreate(SQLiteDatabase db) {
           db.execSQL(CREATE_TABLE);
       }

       @Override
       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
           db.execSQL(DROP_TABLE);
           onCreate(db);
       }
   }
}

Aucun commentaire:

Enregistrer un commentaire