2012-08-17 88 views
0

我有一个Cursor,它从我的数据库中获取一些类别,但我需要手动添加一个不在数据库中的类别,因此它们都可以在ListViewActivity中呈现。 我得到的类别的方法如下:手动将元素添加到光标

Cursor categories = myDbHelper.getCategoriesCursor(
        categorySelected, Tools.getLanguage()); 
      startManagingCursor(categories); 
      CategoriesCursorAdapter categoriesAdapter = new CategoriesCursorAdapter(
        getApplicationContext(), categories); 
      setListAdapter(categoriesAdapter); 

我想创建一个新的ArrayList<String>与我的栏目,并把它传递给Adapter,但仍,我无法抓住这些值,并将其添加到列表中的categories

我该怎么做?

感谢很多提前

编辑:这,就是以“我的DatabaseHelper”

public Cursor getCategoriesCursor(int parentId, int language) { 
     try { 
     String sql = ""; 
     if (parentId == 0) { 
      sql = "SELECT 0 as '_id', 'Agenda' as 'name_category', 0 as 'sort' UNION ALL SELECT categories._id, name_categories.name_category, categories.sort " 
        + "FROM categories JOIN name_categories ON categories._id = name_categories.category_id " 
        + "WHERE categories.parent_id = " + parentId 
        + " AND name_categories.language_id = " + language + " ORDER BY sort"; 
     } else { 
      sql = "SELECT categories._id, name_categories.name_category " 
        + "FROM categories JOIN name_categories ON categories._id = name_categories.category_id " 
        + "WHERE categories.parent_id = " 
        + parentId 
        + " AND name_categories.language_id = " + language + " ORDER BY sort"; 
     } 
     Log.d("XS2TheWorld", sql); 
     return myDataBase.rawQuery(sql, null); 
     } catch (Exception e) { 
      try { 
       copyDataBase(); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
      return getCategoriesCursor(parentId, language); 
     } 
    } 
+0

它可能对我们看到你的'myDbHelper'有用。 – prolink007 2012-08-17 13:20:35

+0

可能MergeAdapter可以为您的问题提供明确的解决方案 - checkout https://github.com/commonsguy/cwac-merge – sandrstar 2012-08-17 13:38:44

回答

0

更容易分类的方法:我只是修改我的SQL查询和它的工作