storing data in a database using edit text and button

青春壹個敷衍的年華 提交于 2020-01-07 05:10:29

问题


Hi I am trying to insert data into database using EditText and Button I have created. I am stuck at Activity part of the code. I am unable to proceed how to write the Onclick action part for Button and EditText part Please help me. I am new to android

DBAdapter.java

package com.example.database1;

public class DBAdapter 
{
    public static final String KEY_ROWID = "_id";
    public static final String KEY_ISBN = "isbn";
    public static final String KEY_TITLE = "title";
    public static final String KEY_PUBLISHER = "publisher";    
    private static final String TAG = "DBAdapter";

    private static final String DATABASE_NAME = "books";
    private static final String DATABASE_TABLE = "titles";
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE =
        "create table titles (_id integer primary key autoincrement, "
        + "isbn text not null, title text not null, " 
        + "publisher 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);
        }

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

        @Override
        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 titles");
            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 title into the database---
    public long insertTitle(String isbn, String title, String publisher) 
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_ISBN, isbn);
        initialValues.put(KEY_TITLE, title);
        initialValues.put(KEY_PUBLISHER, publisher);
        return db.insert(DATABASE_TABLE, null, initialValues);
    }

    //---deletes a particular title---
    public boolean deleteTitle(long rowId) 
    {
        return db.delete(DATABASE_TABLE, KEY_ROWID + 
                "=" + rowId, null) > 0;
    }

    //---retrieves all the titles---
    public Cursor getAllTitles() 
    {
        return db.query(DATABASE_TABLE, new String[] {
                KEY_ROWID, 
                KEY_ISBN,
                KEY_TITLE,
                KEY_PUBLISHER
            }, 
            null, 
            null, 
            null, 
            null, 
            null);
    }

    //---retrieves a particular title---
    public Cursor getTitle(long rowId) throws SQLException 
    {
        Cursor mCursor =
            db.query(true, DATABASE_TABLE, new String[] {
                                KEY_ROWID,
                                KEY_ISBN, 
                                KEY_TITLE,
                                KEY_PUBLISHER
                    }, 
                    KEY_ROWID + "=" + rowId, 
                    null,
                    null, 
                    null, 
                    null, 
                    null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---updates a title---
    public boolean updateTitle(long rowId, String isbn, String title, String publisher) 
    {
        ContentValues args = new ContentValues();
        args.put(KEY_ISBN, isbn);
        args.put(KEY_TITLE, title);
        args.put(KEY_PUBLISHER, publisher);
        return db.update(DATABASE_TABLE, args, 
                     KEY_ROWID + "=" + rowId, null) > 0;
    }
}

DatabaseActivity.java

package com.example.database1;

public class DatabaseActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_database);
        DBAdapter db = new DBAdapter(this);
        db.open();
    } 
}

activity_database.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <EditText
        android:id="@+id/edit1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <EditText
        android:id="@+id/edit2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <EditText
        android:id="@+id/edit3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button 
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"  />
</LinearLayout>

回答1:


public class DatabaseActivity extends Activity {
    EditText edit1,edit2,edit3;
    Button submit;

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         final DBAdapter db = new DBAdapter(this);
         db.open();
         edit1=(EditText)findViewById(R.id.edit1);
         edit2=(EditText)findViewById(R.id.edit2);
         edit3=(EditText)findViewById(R.id.edit3);
         submit=(Button)findViewById(R.id.submit);
        submit.setOnClickListener(new OnClickListener(){


            @Override
            public void onClick(View v) {
                String editText1=edit1.getText().toString();
                String editText2=edit2.getText().toString();
                String editText3=edit3.getText().toString();
                long result=db.insertTitle(editText1, editText2, editText3);
                Toast.makeText(MainActivity.this,"DataSaved",Toast.LENGTH_LONG).show();// TODO Auto-generated method stub

            }
        });
    }

just paste it your database Activity and see the magic cheers..




回答2:


Change your code as to instert Edittext values in database on button click:

public class DatabaseActivity extends Activity {
 DBAdapter db;
Button submitbtn;
EditText edit1,edit2,edit3;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_database);
    db=new DBAdapter(this);
   submitbtn = (Button) findViewById(R.id.submit);
   edit1 = (EditText) findViewById(R.id.edit1);
   edit2 = (EditText) findViewById(R.id.edit2);
   edit3 = (EditText) findViewById(R.id.edit3);
    db.open();

    submitbtn.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {
                String steedtone=edit1.getText().toString();
                String steedttwo=edit2.getText().toString();
                String steedtthree=edit3.getText().toString();

                long result=db.insertTitle(steedtone,steedttwo,steedtthree);
        }
         });
  } 
}



回答3:


This will come inside your onCreate() after setContentView() is called.

Button btn = (Button) findViewById(R.id.btnId);
EditText edtTxt = (EditText) findViewById(R.id.edtId);

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                insertDataInDb();

            }
        });

public void insertDataInDb() {
        // TODO Auto-generated method stub
        String str = edtTxt.getText().toString();
        //Code for insertion
    }



回答4:


check below code.

package com.example.database1;
import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.view.Menu;
import android.widget.Toast;

public class DatabaseActivity extends Activity {

DBAdapter db;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_database);
    db = new DBAdapter(this);
    db.open();

    Button btn = (Button) findViewById(R.id.btnId);
    EditText edtTxt = (EditText) findViewById(R.id.edtId);

    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String name = edtTxt.getText().toString();
            try{
            insertTitle("ISBN",""+name,"publisar");
            }catch(Exception e){
              Log.d("error-->","insert data-->"+e.getMassage().toString());
              }

        }
    });
  } 
  }


来源:https://stackoverflow.com/questions/13853279/storing-data-in-a-database-using-edit-text-and-button

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!