jeudi 18 février 2016

I can not save my data in sqlite in android studio

I write a app and I want save something in sqlite database. my project name is Hesabdari. I copy my data base in Hesabdari\app\build\intermediates\assets\databases\hesabdari.sqlite. I have an MyDatabase class:

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class MyDatabase extends SQLiteAssetHelper {

private static final String DATABASE_NAME = "hesabdari.sqlite";
private static final int DATABASE_VERSION = 1;

public MyDatabase(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    setForcedUpgrade();

}}

I have Earning class like this:

public class Earning extends AppCompatActivity {

OnClickListener listenPlease = new OnClickListener() {
    public void onClick(View v) {
        Intent newIntent = new Intent(Earning.this , EarningForm.class);
        startActivity(newIntent);
    }

};


    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_earning);
    Button record_btn = (Button) findViewById(R.id.btnRecord);
        record_btn.setOnClickListener(listenPlease);
}}

I have EarningForm class like this:

public class EarningForm extends AppCompatActivity {

private MyDatabase MyDatabase;
SQLiteDatabase mydb;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_earning_form);
    Button save=(Button) findViewById(R.id.btnTaeed);
    save.setOnClickListener(listentodb);
    MyDatabase = new MyDatabase(this);
    mydb = MyDatabase.getWritableDatabase();
     }
    View.OnClickListener listentodb = new View.OnClickListener() {
    public void onClick(View v) {
        ContentValues values = new ContentValues();
        values.put("mablagh", R.id.txtMablagh);
        values.put("daste", R.id.btnDaste);
        values.put("hasab", R.id.spinner1);
        values.put("tarikh", R.id.etxTarikh);
        values.put("tozih", R.id.etxTozihat);
       //            mydb.insert("daramad", null, values);
       //            mydb.close();
    }

};

In my program when I click on btnRecord I got this error:

"java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.monire.hesabdari/com.example.monire.hesabdari.EarningForm}: com.readystatesoftware.sqliteasset.SQLiteAssetHelper$SQLiteAssetException: Missing databases/hesabdari.sqlite file (or .zip, .gz archive) in assets, or target folder not writable"

I understand that this error is because of this line: mydb = MyDatabase.getWritableDatabase();

What can I do???????

Aucun commentaire:

Enregistrer un commentaire