使用编辑文本和按钮在数据库中存储数据 [英] storing data in a database using edit text and button

查看:149
本文介绍了使用编辑文本和按钮在数据库中存储数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图插入使用的EditText和Button我已经创建的数据到数据库中。我停留在code活性的一部分。我无法继续怎么写的的onclick行动一部分巴顿和部分的EditText请帮帮我。我是新到Android

DBAdapter.java

 包com.example.database1;公共类DBAdapter
{
    公共静态最后弦乐KEY_ROWID =_id;
    公共静态最后弦乐KEY_ISBN =ISBN;
    公共静态最后弦乐KEY_TITLE =称号;
    公共静态最后弦乐KEY_PUBLISHER =出版人;
    私有静态最后弦乐TAG =DBAdapter;    私有静态最后弦乐DATABASE_NAME =书;
    私有静态最后弦乐DATABASE_TABLE =标题;
    私有静态最终诠释DATABASE_VERSION = 1;    私有静态最后弦乐DATABASE_CREATE =
        创建表的标题(_id整数主键自动增量
        +ISBN文本不为空,标题文本不为空,
        +出版文字不是null);;    私人最终上下文的背景下;    私人DatabaseHelper DBHelper;
    私人SQLiteDatabase分贝;    公共DBAdapter(上下文CTX)
    {
        this.context = CTX;
        DBHelper =新DatabaseHelper(背景);
    }    私有静态类DatabaseHelper扩展SQLiteOpenHelper
    {
        DatabaseHelper(上下文的背景下)
        {
            超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
        }        @覆盖
        公共无效的onCreate(SQLiteDatabase DB)
        {
            db.execSQL(DATABASE_CREATE);
        }        @覆盖
        公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页)
        {
            Log.w(TAG,从版本升级数据库+ oldVersion
                    +至
                    + NEWVERSION +,这将摧毁所有旧数据);
            db.execSQL(DROP TABLE IF EXISTS标题);
            的onCreate(DB);
        }
    }    // ---打开数据库---
    公共DBAdapter的open()抛出的SQLException
    {
        DB = DBHelper.getWritableDatabase();
        返回此;
    }    // ---关闭数据库---
    公共无效的close()
    {
        DBHelper.close();
    }    // ---插入标题到数据库---
    众长insertTitle(ISBN字符串,字符串title,字符串出版社)
    {
        ContentValues​​ initialValues​​ =新ContentValues​​();
        initialValues​​.put(KEY_ISBN,ISBN);
        initialValues​​.put(KEY_TITLE,职称);
        initialValues​​.put(KEY_PUBLISHER,发布者);
        返回db.insert(DATABASE_TABLE,空,initialValues​​);
    }    // ---删除特定的书名---
    公共布尔deleteTitle(长ROWID)
    {
        返回db.delete(DATABASE_TABLE,KEY_ROWID +
                =+ ROWID,NULL)> 0;
    }    // ---检索所有的标题---
    公共光标getAllTitles()
    {
        返回db.query(DATABASE_TABLE,新的String [] {
                KEY_ROWID,
                KEY_ISBN,
                KEY_TITLE,
                KEY_PUBLISHER
            },
            空值,
            空值,
            空值,
            空值,
            空值);
    }    // ---检索特定的书名---
    公共光标的getTitle(长ROWID)抛出的SQLException
    {
        光标mCursor =
            db.query(真,DATABASE_TABLE,新的String [] {
                                KEY_ROWID,
                                KEY_ISBN,
                                KEY_TITLE,
                                KEY_PUBLISHER
                    },
                    KEY_ROWID +=+ ROWID,
                    空值,
                    空值,
                    空值,
                    空值,
                    空值);
        如果(mCursor!= NULL){
            mCursor.moveToFirst();
        }
        返回mCursor;
    }    // ---更新一个标题---
    公共布尔updateTitle(长ROWID,ISBN字符串,字符串title,字符串出版社)
    {
        ContentValues​​ ARGS =新ContentValues​​();
        args.put(KEY_ISBN,ISBN);
        args.put(KEY_TITLE,职称);
        args.put(KEY_PUBLISHER,发布者);
        返回db.update(DATABASE_TABLE,ARGS,
                     KEY_ROWID +=+ ROWID,NULL)> 0;
    }
}

DatabaseActivity.java

 包com.example.database1;公共类DatabaseActivity延伸活动{    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_database);
        DBAdapter DB =新DBAdapter(本);
        db.open();
    }
}

activity_database.xml:

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent>
    <的EditText
        机器人:ID =@ + ID / EDIT1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT/>
    <的EditText
        机器人:ID =@ + ID / EDIT2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT/>
    <的EditText
        机器人:ID =@ + ID / EDIT3
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT/>
    <按钮
        机器人:ID =@ + ID /提交
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT/>
< / LinearLayout中>


解决方案

 公共类DatabaseActivity延伸活动{
    的EditText EDIT1,EDIT2,EDIT3;
    按钮提交;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
         最后DBAdapter DB =新DBAdapter(本);
         db.open();
         EDIT1 =(EditText上)findViewById(R.id.edit1);
         EDIT2 =(EditText上)findViewById(R.id.edit2);
         EDIT3 =(EditText上)findViewById(R.id.edit3);
         提交=(按钮)findViewById(R.id.submit);
        submit.setOnClickListener(新OnClickListener(){
            @覆盖
            公共无效的onClick(视图v){
                。字符串editText1 = edit1.getText()的toString();
                。字符串editText2 = edit2.getText()的toString();
                。字符串editText3 = edit3.getText()的toString();
                长期结果= db.insertTitle(editText1,editText2,editText3);
                Toast.makeText(MainActivity.this,DataSaved,Toast.LENGTH_LONG).show(); // TODO自动生成方法存根            }
        });
    }

只是贴吧的数据库活动,看到了神奇的欢呼声。

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>

解决方案

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..

这篇关于使用编辑文本和按钮在数据库中存储数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆