0

で困っていSQLiteDatabaseます。データをテーブルに保存することができました。残念ながら、私は name を ではなく table 内に保存しましたididテーブルの内側に保管する必要があります。

私のコードを見て、コードに何か問題や不足がないかどうかを確認してください。

これは私のデータベースコードです LikesDBAdapter.java

public class LikesDBAdapter extends AnniversaryDBAdapter
{
    public static final String KEY_ROWID = "likes_id";
    public static final String KEY_LIKES = "like";  
    public static final String KEY_NAME = "name_id";
    private static final String TAG = "DBAdapter";
    private static final String CREATE_TABLE_LIKES = "likes";

    //private SQLiteDatabase db;

    public LikesDBAdapter(Context ctx)
    {
        super(ctx);

    }

        public long insertLikes(String likes, String name)
        {
            ContentValues initialValues = new ContentValues();
            initialValues.put(KEY_LIKES, likes);
            initialValues.put(KEY_NAME, name);
            return db.insert(CREATE_TABLE_LIKES, null, initialValues);
        }// end insertContact()

        public boolean deleteLikes(long rowId)
        {
            return db.delete(CREATE_TABLE_LIKES, KEY_ROWID + "=" + rowId, null) > 0;
        }// end deleteContact()

        public Cursor getAllLikes()
        {
            return db.query(CREATE_TABLE_LIKES, new String[] 
                    { KEY_ROWID, KEY_LIKES, KEY_NAME }, null, null, null, null, null);
        }// end getAllContacts()

        public Cursor getLikes(long rowId) throws SQLException
        {
            Cursor mCursor = db.query(true, CREATE_TABLE_LIKES, new String[] {
                    KEY_ROWID, KEY_LIKES, KEY_NAME }, KEY_ROWID + "=" + rowId,
                    null, null, null, null, null);
            if (mCursor != null)
            {
                mCursor.moveToFirst();
            }
            return mCursor;
        }// end getContact()

}//end DBAdapter

ああ、これはdatabase1 つのクラス内で 5 つのテーブルが作成される別のクラスDBAdapterです

public class AnniversaryDBAdapter
{

    private static final String DATABASE_NAME = "Tables";
    private static final int DATABASE_VERSION = 2;

     private static final String CREATE_TABLE_TITLE = "create table titles(title_id integer primary key autoincrement, title text not null, image text not null);";
    private static final String CREATE_TABLE_BUDDIESLIST = "create table buddiesList(name_id integer primary key autoincrement, name text not null);";
    private static final String CREATE_TABLE_LIKES = "create table likes(likes_id integer primary key autoincrement,like text not null, name text not null);";
    private static final String CREATE_TABLE_DISLIKES = "create table dislike(dlike_id integer primary key autoincrement, dislike text not null, name text not null);";
    private static final String CREATE_TABLE_EVENTS = "create table events" +
            "(event_id integer primary key autoincrement, " +
            "title text not null, location text not null, " +
            "starttime text not null, " +
            "endtime text not null, " +
            "desc text not null, " +
            "alarm text not null, " +
            "date text not null, " +
            "name_id integer not null);";

これは、データベース テーブルに情報を挿入する必要がある別のコードです。

btnSave = (Button) findViewById(R.id.btnSave);
        btnSave.setOnClickListener(new View.OnClickListener()
            {

                @Override
                public void onClick(View v)
                {
                    likeDB.open();
                    long like_id;

                    Spinner nameSpinner = (Spinner) findViewById(R.id.nameSpinner);
                    String NameValue = nameSpinner.getSelectedItem().toString();

                    EditText txtLikes = (EditText) findViewById(R.id.txtLikes);
                    String LikeValue = txtLikes.getText().toString();

                    like_id = likeDB.insertLikes(LikeValue, NameValue);
                    likeDB.close();

                    dlikeDB.open();
                    long dlike_id;

                    Spinner names = (Spinner) findViewById(R.id.nameSpinner);
                    String NamesValue = names.getSelectedItem().toString();

                    EditText txtDislikes = (EditText) findViewById(R.id.txtDislikes);
                    String DislikeValue = txtDislikes.getText().toString();

                    dlike_id = dlikeDB.insertDislikes(DislikeValue, NamesValue);
                    dlikeDB.close();

                    Toast.makeText(getBaseContext(), "Your information is saved successfully! :D", Toast.LENGTH_LONG).show();


                }
            });

上記のメソッドを宣言しましlikeDBdlikeDBonCreate()

LikesDBAdapter likeDB = new LikesDBAdapter(this);
DislikesDBAdapter dlikeDB = new DislikesDBAdapter(this);

更新
コードを編集しました。この記事では、AnniversaryDBAdapter クラスのコードをいくつか削除しました。

4

1 に答える 1

0

なぜあなたは驚いたのですか?insertLikes 関数でデータベースに名前を挿入しています

    public long insertLikes(String likes, String name)
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_LIKES, likes);
        ***initialValues.put(KEY_NAME, name);***
        return db.insert(CREATE_TABLE_LIKES, null, initialValues);
    }// end insertContact()
于 2012-08-29T07:00:19.223 に答える