Android游标查询

时间:2013-12-26 11:45:54

标签: android

Hiiı制作一个具有一定优先级的下拉导航,当ı点击其中一个时 我想从数据库中提取一些信息但是却无法从数据库中获取结果。  在我的项目中我有一个主要的活动和simplecursoradapter。在主要活动ı在行动栏的下拉菜单中有一些优先级。当ı选择其中一个,ı过滤数据库根据他们的优先级通过光标,并将结果光标发送到simplecursoradapter这是我在mainActivity中的导航代码

    ArrayAdapter<String> adapter=new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, actions);
       getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

     OnNavigationListener navigationListener = new OnNavigationListener() {

      @Override
      public boolean onNavigationItemSelected(int itemPosition, long itemId) {

         filterPriorityItems(itemPosition);
           todoAdapter.notifyDataSetChanged();
        return true;
      }


  };

getActionBar().setListNavigationCallbacks(adapter, navigationListener);

我将itemposition发送到filterFunction,它也是主要的活动

    private void filterPriorityItems(int itemPosition) {
    String where=null;
    ContentResolver resolver =getContentResolver();
    switch(itemPosition){
    case 0:
        where = MyOpenHelper.PRIORITY + ">" + 5;
    cursor = resolver.query(ContentProvider.CONTENT_URI, FROM, where,
            null, null);
    startManagingCursor(cursor);
        break;
    case 1:
        where = MyOpenHelper.PRIORITY + "<" + 7 + "and " + ">" + 5;
        cursor = resolver.query(ContentProvider.CONTENT_URI, FROM, null,
                null, null);
        startManagingCursor(cursor);
        break;
    case 2:
        where = MyOpenHelper.PRIORITY + "<" + 7 + "and " + ">" + 5;
        cursor = resolver.query(ContentProvider.CONTENT_URI, FROM, null,
                null, null);
        startManagingCursor(cursor);
        break;
    case 3:
        where = MyOpenHelper.PRIORITY + "<" + 7 + "and " + ">" + 5;
        cursor = resolver.query(ContentProvider.CONTENT_URI, FROM, null,
                null, null);
        startManagingCursor(cursor);
        break;
        default:

    }


        }
}

根据这个过滤器功能,我想返回一个光标,用于在我的simplecursoradapter中发送光标   

todoAdapter = new SimpleCursorToDoAdapter(this, R.layout.todo_list_item , cursor, FROM, TO);

但是当我将光标发送到我的适配器时,它不会更改我想要过滤数据库的光标

1 个答案:

答案 0 :(得分:1)

我解决了我的问题,我想解释一下。 这个问题的解决方案是碎片化。我在我的主要活动中创建了一个新片段,并且我编写了这段代码

            public boolean onNavigationItemSelected(int itemPosition, long itemId) {

                fragment = new MyTodoListFragment();
                FragmentTransaction ft =getFragmentManager().beginTransaction();
                ft.replace(R.id.my_new,fragment,actionlist[itemPosition]);
                ft.commit();

                return true;



            }

我在我的片段中发送项目位置。我在OnAttach()函数中通过getTag得到这个项目,之后我将活动中的代码移动到片段 问题解决了