Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 允许用户从位置添加/删除抽屉/列表视图中的收藏夹,并将其保存到SQLite db_Android_Database_Sqlite_Listview - Fatal编程技术网

Android 允许用户从位置添加/删除抽屉/列表视图中的收藏夹,并将其保存到SQLite db

Android 允许用户从位置添加/删除抽屉/列表视图中的收藏夹,并将其保存到SQLite db,android,database,sqlite,listview,Android,Database,Sqlite,Listview,我有一个预先填充了一些数据的sqlite数据库,我希望有一个方法/功能,使用户能够“保存”收藏夹中的信息并显示它。唯一的问题是,我在查询是否正常工作方面遇到了问题。我不明白如何从活动中当前显示的数据(来自数据库)中获取位置并将其保存到数据库中。我在db中有一个名为“收藏夹”的列,默认值设置为“否”,当用户单击按钮时,该值应更改为“是” 用户单击从数据库填充的listview中的一行,它将使用intent.putExtra(数据库中的数据)启动一个新活动。新活动在单个文本视图中显示数据。在这个新活

我有一个预先填充了一些数据的sqlite数据库,我希望有一个方法/功能,使用户能够“保存”收藏夹中的信息并显示它。唯一的问题是,我在查询是否正常工作方面遇到了问题。我不明白如何从活动中当前显示的数据(来自数据库)中获取位置并将其保存到数据库中。我在db中有一个名为“收藏夹”的列,默认值设置为“否”,当用户单击按钮时,该值应更改为“是”

用户单击从数据库填充的listview中的一行,它将使用intent.putExtra(数据库中的数据)启动一个新活动。新活动在单个文本视图中显示数据。在这个新活动中,我制作了一个导航抽屉/列表视图(通过滑动或“汉堡包菜单”显示)。在这个导航抽屉中,我有一个“按钮”,我想根据当前显示的数据从数据库中获取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();
}

我已经尝试了相当多的版本,包括不同的代码和东西,但都不起作用,现在我正在征求som对此的建议。我怎样才能以一种有效的方式做好这件事?非常感谢您的帮助

编辑:通过使用数组而不是stringbuilder来解决它。我将数据库中的id保存在[0]中,并在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);
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id){
游标c=dbHelper.aClass(Integer.toString(位置+1));
StringBuilder sb=新的StringBuilder();
while(c.moveToNext()){
myStringArray[0]=c.getString(0);
myStringArray[1]=c.getString(4);
意向i=新意向(A类、本类、B类);
i、 putExtra(null,myStringArray);
星触觉(i);

我不是舒尔,但您的问题可能是这条线路
ContentValues=newcontentvalues();

尝试将其更改为:
ContentValues=新的ContentValues(1);

根据我的经验,你应该写下你想发送给数据库的变量数量。

 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);