为什么我的数据不插入到 android 上的 SQLite 数据库中?

用户9545467

我正在创建一个简单的待办事项列表。所以,我有活动 (NewTaskActivity) Xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ScrollView
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <EditText
                  android:id="@+id/et_new_task_input"
                  android:hint="@string/new_task_input_hint"
                  android:textSize="15sp"
                  android:layout_margin="20dp"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content" />

          </ScrollView>

         <android.support.design.widget.FloatingActionButton
           android:id="@+id/fb_float_button_apply"
           android:src="@drawable/ic_check"
           app:fabSize="normal"
           android:layout_margin="10dp"
           android:layout_alignParentBottom="true"
           android:layout_alignParentRight="true"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignParentEnd="true" />

    </RelativeLayout>

 </LinearLayout>

我有一个类NewTaskActivity.java

   public class NewTaskActivity extends AppCompatActivity {
   private DBHelper dbHelper;
   private SQLiteDatabase database;

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

       dbHelper = new DBHelper(NewTaskActivity.this);
       database = dbHelper.getWritableDatabase();

    FloatingActionButton floatingActionButton = 
    findViewById(R.id.fb_float_button_apply);
    floatingActionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick (View v) {
            addNewTask();
        }
    });
}

@Override
protected void onDestroy () {
    super.onDestroy();

    dbHelper.close();
}

@SuppressLint("SimpleDateFormat")
private void addNewTask () {
    EditText task_input = findViewById(R.id.et_new_task_input);

    if (!task_input.getText().toString().equals("")) {
        ContentValues contentValues = new ContentValues();

        contentValues.put("task", task_input.getText().toString());
        contentValues.put("date", 
       new SimpleDateFormat("dd/MM/yymm:hh").
        format(Calendar.getInstance().getTime()));

        database.insert("tasks", null, contentValues);

        finish();
      }
   }
 }

在这个类(NewTaskActivity.java)中,我想在数据库中添加数据。数据库类(DBHelper.java):

    public class DBHelper extends SQLiteOpenHelper {
    private static final int DB_VERSION = 2;
    private static final String DB_NAME = "simpletodo";

    public DBHelper (@Nullable Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate (SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS tasks (_id INT NOT NULL PRIMARY 
       KEY, task TEXT NOT NULL, date TEXT NOT NULL)");
    }

    @Override
    public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS tasks");

        onCreate(db);
    }
}

而且我的数据不会插入到数据库中。为什么?在“插入”之后和“完成”之前使用 Log.d()检查了NewTaskActivity.java中的数据,但他们什么也没给我。我后来完成了待办事项列表,但我没有这样的问题。

福帕斯

您的 CREATE 语句将列定义_idINT NOT NULL PRIMARY KEY不是, AUTOINCREMENT因此您必须自己提供它,但您不需要。
当然最好是这样AUTOINCREMENT

_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE

编辑:从卸载模拟器/设备的应用程序,然后运行修改后的代码,否则这些修改将不会影响你的数据库,因为onCreate()方法SQLOpenHelper()不会被触发。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Android Studio中的设备上查看SQLite数据库

来自分类Dev

数据未插入Android上的SQLite数据库?

来自分类Dev

如何在Android上的SQLite数据库中插入数据

来自分类Dev

我的程序在Android上的sqlite数据库中找不到表

来自分类Dev

在Android中升级SQLite数据库

来自分类Dev

android中的sqlite数据库错误

来自分类Dev

在Android中连接SQLite数据库

来自分类Dev

ListView Android 中的 SQLite 数据库

来自分类Dev

无法在Android SQlite数据库中插入数据

来自分类Dev

Android上的SQLite数据库-如何删除它?

来自分类Dev

从Android上的SQLite数据库填充ListView

来自分类Dev

NullpointerException在Android上使用sqlite数据库

来自分类Dev

离子sqlite数据库在ios和android上失败

来自分类Dev

在创建表脚本中定义但未在表上创建的Android Sqlite数据库列

来自分类Dev

SDcard上的android SQLite数据库,无需使用SQLiteOpenHelper即可插入数据并获取结果

来自分类Dev

android:在sqlite数据库中缓存gson数据

来自分类Dev

在Android sqlite数据库中更新单个数据

来自分类Dev

从android中的sqlite数据库获取随机数据

来自分类Dev

无法在android中的Sqlite数据库中保存数据?

来自分类Dev

从 Android 中的 SQLite 数据库获取数据?

来自分类Dev

什么是Android中的“ -journal” SQLite数据库?

来自分类Dev

Android从.csv插入sqlite数据库

来自分类Dev

Android:SQLite插入数据库

来自分类Dev

Android插入SQLite数据库

来自分类Dev

在PHP中找不到网络上的SQLite数据库

来自分类Dev

从Android中的SQLite数据库中获取德语字符

来自分类Dev

Android中SQLite数据库中的单行

来自分类Dev

在Android中删除或更新SQLite数据库中的条目

来自分类Dev

在Android上的ListView中显示数据库中的数据

Related 相关文章

  1. 1

    在Android Studio中的设备上查看SQLite数据库

  2. 2

    数据未插入Android上的SQLite数据库?

  3. 3

    如何在Android上的SQLite数据库中插入数据

  4. 4

    我的程序在Android上的sqlite数据库中找不到表

  5. 5

    在Android中升级SQLite数据库

  6. 6

    android中的sqlite数据库错误

  7. 7

    在Android中连接SQLite数据库

  8. 8

    ListView Android 中的 SQLite 数据库

  9. 9

    无法在Android SQlite数据库中插入数据

  10. 10

    Android上的SQLite数据库-如何删除它?

  11. 11

    从Android上的SQLite数据库填充ListView

  12. 12

    NullpointerException在Android上使用sqlite数据库

  13. 13

    离子sqlite数据库在ios和android上失败

  14. 14

    在创建表脚本中定义但未在表上创建的Android Sqlite数据库列

  15. 15

    SDcard上的android SQLite数据库,无需使用SQLiteOpenHelper即可插入数据并获取结果

  16. 16

    android:在sqlite数据库中缓存gson数据

  17. 17

    在Android sqlite数据库中更新单个数据

  18. 18

    从android中的sqlite数据库获取随机数据

  19. 19

    无法在android中的Sqlite数据库中保存数据?

  20. 20

    从 Android 中的 SQLite 数据库获取数据?

  21. 21

    什么是Android中的“ -journal” SQLite数据库?

  22. 22

    Android从.csv插入sqlite数据库

  23. 23

    Android:SQLite插入数据库

  24. 24

    Android插入SQLite数据库

  25. 25

    在PHP中找不到网络上的SQLite数据库

  26. 26

    从Android中的SQLite数据库中获取德语字符

  27. 27

    Android中SQLite数据库中的单行

  28. 28

    在Android中删除或更新SQLite数据库中的条目

  29. 29

    在Android上的ListView中显示数据库中的数据

热门标签

归档