我有一个预先填充了一些数据的sqlite数据库,我希望有一个方法/功能,使用户能够“保存”#34;他最喜欢的信息并显示出来。唯一的问题是我的查询有问题才能正常工作。我不了解如何从活动中的当前显示数据(来自数据库)中获取位置并将其保存到数据库中。我有一个名为"收藏夹"在db中,默认值设置为" no"当用户点击按钮时,该值应更改为"是"。
用户单击从DB填充的listview中的行,它将使用intent.putExtra(来自db的数据)启动新活动。新活动在单个文本视图中显示数据。在这项新活动中,我制作了一个导航抽屉/列表视图(通过滑动显示或" hamburger meny")。在这个导航抽屉里,我有一个"按钮"我想根据当前显示的数据从数据库中获取id并更改列的值"收藏"。在我使用的另一个班级
Cursor c = dbHelper.showBook(Integer.toString(position + 1));
从我最近的另一个帖子得到了这个帮助,它工作正常,但我的新问题是我有if语句如下。意图的开始工作正常。但是我想从dbHelper中调用一个方法来更新db中的行。当我尝试使用它时,上面的代码不起作用(但没有错误)。吐司显示但数据库中没有任何事情发生。
myDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0){
Intent iHome = new Intent(DisplayBook.this, MyAccont.class);
startActivity(iHome);
else if (position == 3){
dbHelper.addFavorites(Integer.toString(position+ 1));
Toast.makeText(getApplicationContext(), "Added to favorites", Toast.LENGTH_SHORT).show();
dbHelper.addFavorites :( addFavs param应该是db行的id / pos,如上面的工作代码所示) public void addFavorites(String addFavs){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COL_FAV, "yes");
String whereClause = COL_ID + " = ?" ;
String[] whereArgs = new String[] { addFavs};
db.update(
TABLE_NAME,
values,
whereClause,
whereArgs);
}
我已经尝试了相当数量的版本,不同的代码和东西,但没有任何作用,现在我要求som建议。我怎样才能以一种有效的方式做到这一点?非常感谢您的帮助!
编辑:使用数组而不是使用stringbuilder解决它。我在[0]中保存数据库中的id并在dbHelper.addFavorites(myStringArray [0])中使用它;
并在
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Cursor c = dbHelper.aClass(Integer.toString(position + 1));
StringBuilder sb = new StringBuilder();
while (c.moveToNext()) {
myStringArray[0] = c.getString(0);
myStringArray[1] = c.getString(4);
Intent i = new Intent(classA.this, classB.class);
i.putExtra(null, myStringArray);
startActivity(i);
答案 0 :(得分:0)
我不是舒尔,但你的问题可能就是这句话
ContentValues values = new ContentValues();
尝试将其更改为:
ContentValues values = new ContentValues(1);
根据我的经验,你应该写出你想要发送到数据库的变量数量。