当有人在android中写入EditText时,如何创建数据库并将数据保存到数据库中?

时间:2012-09-01 07:14:35

标签: android database save android-edittext

我是android的新手,在我的应用程序中我需要创建数据库,当用户在EditText中写入一些内容时,我需要将其保存到数据库中但我实际上并不知道我将如何做到这一点。所以请有人帮助我。我已经创建了提交按钮,用于保存数据,我现在需要创建一个数据库。

这里我给的是一个名为" Invitation.java"的活动类。其中包含

         package com.ggit.trip.caster;

     import android.content.Intent;
     import android.os.Bundle;
     import android.util.Log;
     import android.view.View;
     import android.view.View.OnClickListener;
     import android.widget.Button;
     import android.widget.EditText;

    public class Invitation extends AppBaseActivity {

protected static final String Tag = "Invitation Activity";

private Button submit2;
private Button exit2;

private EditText Edit1;
private EditText Edit2;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.invitation);

    registerBaseActivityReceiver();

    submit2 = (Button) findViewById(R.id.sub2_button1);
    exit2=(Button)findViewById(R.id.button2);

    Edit1 = (EditText) findViewById(R.id.editText1);
    Edit2 = (EditText) findViewById(R.id.editText2);

    submit2.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {

            Log.d(Tag, "EditText : " + Edit1.getText().toString());
            Log.d(Tag, "EditText : " + Edit2.getText().toString());

            Intent intent = new Intent(getApplicationContext(),
                    Registration.class);
            startActivity(intent);
        }
    });

    exit2.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            closeAllActivities();
                   }
    });
}

public void onDestroy() {

    super.onDestroy();
    unRegisterBaseActivityReceiver();
}

    }

现在这里邀请了一个名为" invitation.xml"的Invitation.jave类的xml布局。包含

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/sea_01"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView3"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="28dp"
    android:text="E-mail"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="160dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:background="@drawable/rounded_edittext"
    android:ems="10"
    android:hint="     email address"
    android:inputType="textEmailAddress" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/editText1"
    android:text="Phone"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="160dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText1"
    android:layout_below="@+id/textView2"
    android:background="@drawable/rounded_edittext"
    android:ems="10"
    android:hint="    phone number"
    android:inputType="phone" />

<Button
    android:id="@+id/sub2_button1"
    android:layout_width="100dp"
    android:layout_height="45dp"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/textView1"
    android:layout_marginRight="27dp"
    android:background="@drawable/gloss_nine_patch"
    android:text="Send Invitation" />

<Button
    android:id="@+id/button2"
    android:layout_width="100dp"
    android:layout_height="45dp"
    android:layout_alignLeft="@+id/textView2"
    android:layout_alignParentBottom="true"
    android:layout_marginLeft="32dp"
    android:background="@drawable/gloss_nine_patch"
    android:text="Exit" />

 </RelativeLayout>

现在我需要将数据保存到数据库中,这两个EditText.please写一个正确的或完整的活动类,因为我是一个新人。谢谢。


@Naser的DataHelper.java

package i.am.arnob;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DataHelper  extends SQLiteOpenHelper{

//database version, current ver is 1.
public static final int DATABASE_VER=1;

//database Name or db name
public static final String DATABASE_NAME="dataPerson";

//table Name, table person
public static final String TABLE_PERSON="person";

//table fields name,fist name,email and domain
//public static final String KEY_NAME="name";
//public static final String KEY_FIRST_NAME="first_name";
public static final String KEY_EMAIL="email";
public static final String KEY_DOMAIN="domain";

public DataHelper(Context context, String name, CursorFactory factory,
        int version) {
    super(context, name, factory, version);
    // TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    //creating string sqlTable for creating a table 
    String sqlTable = "create table " +TABLE_PERSON+ "("/* +KEY_NAME+ " text," +KEY_FIRST_NAME+ " text," */ +KEY_EMAIL+ " text," +KEY_DOMAIN+ " text);"; 
    //db.execSQL() will execute string which we provide and will create a  table with given table name and fields.
    db.execSQL(sqlTable);
}

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

}

}

2 个答案:

答案 0 :(得分:1)

这里我为所有功能创建了简单的类

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DBAdapter {

public static final String KEY_AOUTO = "_id";
public static final String KEY_ID_SONG = "id_song";
public static final String KEY_RATING_VALUE = "rating_value";

private static final String TAG = "DBAdapter";

private static final String DATABASE_NAME = "meadia_rating";
private static final String DATABASE_TABLE_TIME = "music_rating";

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE_TIME = "create table music_rating (_id integer primary key autoincrement,"
        + "id_song text not null,rating_value text not null);";

private final Context context;

private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public DBAdapter(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper {
    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public void onCreate(SQLiteDatabase db) {

        db.execSQL(DATABASE_CREATE_TIME);

    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS Savedfiles");

        onCreate(db);
    }
}

// ---opens the database---
public DBAdapter open() throws SQLException {
    db = DBHelper.getWritableDatabase();
    return this;
}

// ---closes the database---
public void close() {
    DBHelper.close();
}

// ---insert a data into the database---
public long insert(String id_song, String rating_value) {
    ContentValues initialValues = new ContentValues();

    initialValues.put(KEY_ID_SONG, id_song);
    initialValues.put(KEY_RATING_VALUE, rating_value);

    return db.insert(DATABASE_TABLE_TIME, null, initialValues);
}

// ---deletes a particular row---
public boolean delete(long rowId) {
    return db.delete(DATABASE_TABLE_TIME, KEY_AOUTO + "=" + rowId, null) > 0;
}

// ---deletes all table data---
public void deleteAll(String table_name) {
    SQLiteDatabase db = DBHelper.getWritableDatabase();
    db.delete(table_name, null, null);
}

// ---- Search database a particular text----
public Cursor getRating(String mSongId) throws SQLException {


    Cursor mCursor = db.query(true, DATABASE_TABLE_TIME, new String[] {
            KEY_AOUTO, KEY_ID_SONG, KEY_RATING_VALUE }, KEY_ID_SONG + "="
            + mSongId, null, null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

// ---updates a title---
public boolean updateRate(String rowId, String mSongId, String rating_value) {
    ContentValues args = new ContentValues();
    args.put(KEY_ID_SONG, mSongId);
    args.put(KEY_RATING_VALUE, rating_value);

    return db.update(DATABASE_TABLE_TIME, args, KEY_AOUTO + "=" + rowId,
            null) > 0;
}

}

答案 1 :(得分:0)

这是我的代码:

这是Helper Class:

public class DataHelper  extends SQLiteOpenHelper{

    //database version, current ver is 1.
    public static final int DATABASE_VER=1;

    //database Name or db name
    public static final String DATABASE_NAME="dataPerson";

    //table Name, table person
    public static final String TABLE_PERSON="person";

    //table fields name,fist name,email and domain
    public static final String KEY_NAME="name";
    public static final String KEY_FIRST_NAME="first_name";
    public static final String KEY_EMAIL="email";
    public static final String KEY_DOMAIN="domain";



    public DataHelper(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        //creating string sqlTable for creating a table 
        String sqlTable = "create table " +TABLE_PERSON+ "(" +KEY_NAME+ " text," +KEY_FIRST_NAME+ " text," +KEY_EMAIL+ 
                " text," +KEY_DOMAIN+ " text);"; 
        //db.execSQL() will execute string which we provide and will create a table with given table name and fields.
        db.execSQL(sqlTable);

    }

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

    }

}

这是您的保存按钮:

mbtnSave.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                // getting database for reading/writing purpose
                db = helper.getWritableDatabase();

                // getting data from edit text to string variables
                String name = medtName.getText().toString().trim();
                String firstName = medtFirstName.getText().toString().trim();
                String email = medtEmail.getText().toString().trim();
                String domain = medtDomain.getText().toString().trim();

                // checking for empty fields
                if (!name.equals("") && !firstName.equals("")
                        && !email.equals("") && !domain.equals("")) {

                    // contentValues will add data into key value pair which
                    // will later store in db
                    ContentValues values = new ContentValues();

                    values.put(DataHelper.KEY_NAME, name);
                    values.put(DataHelper.KEY_FIRST_NAME, firstName);
                    values.put(DataHelper.KEY_EMAIL, email);
                    values.put(DataHelper.KEY_DOMAIN, domain);

                    // insert query will insert data in database with
                    // contentValues pair.
                    db.insert(DataHelper.TABLE_PERSON, null, values);

                    toast("Added!");

                    // db.close();
                    // helper.close();
                    // created user defined method to clean the text fields
                    clean();

                    // }else{toast("proper name");}
                } else {

                    toast("Fields either empty or not proper");
                }

                // closing the database connection
                db.close();
            }
        });