更新不使用sqlite数据库的行列值

时间:2017-11-12 21:29:44

标签: java android database sqlite android-recyclerview

所以我有一个包含三列[ id | name | badgeID ]的表。

我使用recyclerview显示数据,一切正常。我希望添加更新名称的可能性,当用户单击列表中某个项目的编辑按钮时,它可以完美地工作。现在我希望用户也可以编辑他们的badgeID

我使用了与名称更新相同的逻辑和代码,但它不起作用!在编辑后,我在日志中打印了数据库行及其值,并显示了新编辑的名称,但是显示了相同的badgeID?!

DBHelper Class

    // with this I edit the name and works fine!
    public boolean updateName(long rowId, String newName) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues args = new ContentValues();
        args.put(COLUMN_ID, rowId);
        args.put(COLUMN_NAME, newName);

        return db.update(TABLE_WORK_APP, args, COLUMN_ID + "=" + rowId, null) > 0;
    }

    // this for editing the badgeID and It doesn't works :(
    public boolean updateBadgeID(long rowId, int badgeId) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues args = new ContentValues();
        args.put(COLUMN_ID, rowId);
        args.put(COLUMN_BADGE_ID, badgeId);

        return db.update(TABLE_WORK_APP, args, COLUMN_ID + "=" + rowId, null) > 0;
    }

活动类

   // works fine;
  public void updateName(String nameNew, int position) {
    db.updateQuote(dbList.get(position).get_id(), nameNew);
    dbList.clear();
    dbList.addAll(db.getDataFromDB());
    mAdapter.notifyDataSetChanged();
    Toast.makeText(getActivity(), "Name updated.!", Toast.LENGTH_SHORT).show();
  }

  // not working!
 public void updateBadgeID(int badgeIdNew, int position) {
    db.updateBadgeID(dbList.get(position).get_id(), badgeIdNew);
    dbList.clear();
    dbList.addAll(db.getDataFromDB());
    mAdapter.notifyDataSetChanged();
    Toast.makeText(getActivity(), "badgeID updated.!", Toast.LENGTH_SHORT).show();
  }

0 个答案:

没有答案