Вставка значений в таблицу базы данных (SQLite для приложений Android) - PullRequest
0 голосов
/ 11 октября 2011

У меня проблема со вставкой строковых значений (имя_пользователя, пароль) в таблицу с именем логина. Вот коды: Я добавил комментарий «// ЭТО ГДЕ ПРОБЛЕМА ПРОИСХОДИТ», чтобы выделить проблему ... Класс DBAdapter, содержащий все методы, связанные с базой данных, также приведены после этого кода.

package images.tests.proj;

import java.io.IOException;
import images.tests.proj.DBAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.database.Cursor;

public class username extends Imagetest1Activity {
    /** Called when the activity is first created. */
    private DBAdapter db1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.username);
        Button lbtn = (Button) findViewById(R.id.loginb);
        Button rbtn = (Button) findViewById(R.id.registerb);
        final EditText utext = (EditText) findViewById(R.id.utext);
        final EditText ptext = (EditText) findViewById(R.id.ptext);
        db1 = new DBAdapter(this);
        rbtn.setOnClickListener(new View.OnClickListener() {

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

                String ut = utext.getText().toString();
                String pt = ptext.getText().toString();
                try {
                    // THIS IS WHERE THE PROBLEM OCCURS
                    db1.insertContact(ut, pt);

                } catch (NullPointerException e) {
                    Toast.makeText(username.this, "Error", Toast.LENGTH_SHORT).show();
                }
            }
        });

    }
}

Класс DBAdapter содержит метод insertContact следующим образом:

//---insert a contact into the database---
public long insertContact(String user_name, String password)
{
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_USERNAME, user_name);
    initialValues.put(KEY_PASSWORD, password);
    return db.insert(DATABASE_TABLE, null, initialValues);
}

Не могли бы вы указать на ошибку? Любая помощь будет заметна. Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

используйте это.

public long insertContact(String name, int moves,String time)   {

    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_NAME, name);
    initialValues.put(KEY_MOVES, moves);
    initialValues.put(KEY_TIME, time);
    return db.insert(DATABASE_TABLE, null, initialValues);
}
0 голосов
/ 11 октября 2011

Вам необходимо открыть базу данных, которая может быть доступна для записи в классе DBAdapter:

Попробуйте:

 public long insertContact(String user_name, String password)
{
db= this.getWritableDatabase();
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_USERNAME, user_name);
initialValues.put(KEY_PASSWORD, password);
return db.insert(DATABASE_TABLE, null, initialValues);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...