ユーザー入力を介してのsqliteにデータを挿入するには?

Nesh_A:

私は、モバイルアプリケーションの建物の中に初心者です。私はアンドロイドのスタジオでデータ機能INSERT入れしようとしたが、それらの挿入機能は動作せず、入力データが挿入できないようです。助けてください。

私はMainActivity.javaとDatabaseHelper.javaにいくつかのコードを置きます。それは私にすべてのエラーレポートを与えるものではありませんが、私はエミュレータと入力データを実行しようとしたとき、私の入力はSQLiteのデータベースに挿入することができます。

// oncreateMainActivity

super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myDb = new DatabaseHelper(this);

        name2 = findViewById(R.id.name2);
        birthdate2 = findViewById(R.id.birthdate2);
        area2 = findViewById(R.id.area2);
        receiver2 = findViewById(R.id.receiver2);

        submit2 = findViewById(R.id.submit2);
        submit2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v)
            {
                name = name2.getText().toString();
                birth = birthdate2.getText().toString();
                area = area2.getText().toString();
                receiver = receiver2.getText().toString();
...
        insertData2 (name, birth, area, receiver);
...

public void insertData2 (String name,String birth,String area, String receiver){
        boolean add_data = myDb.insertData(name,birth,area,receiver);

        if (!add_data){
            Toast.makeText(MainActivity.this,"Something went wrong><", Toast.LENGTH_LONG).show();
        }
        else{
            Toast.makeText(MainActivity.this,"Success to add data!", Toast.LENGTH_LONG).show();
        }

    }

//DatabaseHelper.java

public boolean insertData(String childname ,String bornday, String areaprogram, String receiverid){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1, childname);
        contentValues.put(COL2, bornday);
        contentValues.put(COL3, areaprogram);
        contentValues.put(COL4, receiverid);

        long result = db.insert(TABLE_NAME, null, contentValues);

        if(result == -1){
            return false;
        }
        else{
            return true;
        }
    }
離れて渡します:

この方法の第一のパラメータは、put()列の名前ですが、あなたは値を渡します。
これに変更します(もちろん、あなたのように列名を置き換える"Name""Birthdate"など):

public boolean insertData(String Name,String Birthdate,String Area, String ID){
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(ColunNameForName, Name);
    contentValues.put(ColunNameForBirthdate, Birthdate);
    contentValues.put(ColunNameForArea, Area);
    contentValues.put(ColunNameForID, ID);

    long result = db.insert(TABLE_NAME, null, contentValues);

    if(result == -1){
        return false;
    }
    else{
        return true;
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=214791&siteId=1