Sqlite 选择用于在微调器选择上加载项目的查询

Sqlite 选择用于在微调器选择上加载项目的查询,sqlite,select,android-listview,android-sqlite,android-spinner,Sqlite,Select,Android Listview,Android Sqlite,Android Spinner,我有一个从sqlite中填充值(category from category table)的微调器,现在我需要一个select查询将项目检索到listView中。这样,在微调器选择更改时,listview值也会更改。项目来自另一个表(项目)。cid是项目表中的外键,cid是类别表中的主键。我尝试了此操作,但显示空的listview String select = "SELECT " + Support.KEY_INAME + " FROM " +

我有一个从sqlite中填充值(category from category table)的微调器,现在我需要一个select查询将项目检索到listView中。这样,在微调器选择更改时,listview值也会更改。项目来自另一个表(项目)。cid是项目表中的外键,cid是类别表中的主键。我尝试了此操作,但显示空的listview

 String select = "SELECT " +
            Support.KEY_INAME + " FROM "
            + Support.TABLE_ITEMS + " LEFT JOIN "
            + Support.TABLE_CAT + " ON "
            + (Support.TABLE_ITEMS + "." + Support.KEY_CID) +" = "
            + (Support.TABLE_CAT + "." + Support.KEY_CID)
            + " WHERE " + Support.TABLE_CAT + "." + Support.KEY_CID + " =?";
这是我的微调器选择和加载listview数据代码

spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
         @Override
         public void onItemSelected(AdapterView<?> parent, View view, final int position, long id) {

             Spinner spinner = (Spinner)parent;

            if (spinner.getId() == R.id.spinner1) {

                 dbRepo = new DBRepo(getApplicationContext());
                 final List<Support> list = dbRepo.getItems1();
                 adapter = new Custom(Category.this, R.layout.view_entry, list);
                 adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);

                 adapter.notifyDataSetChanged();
                 lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
                 lv.setAdapter(adapter);
spinner1.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共id(AdapterView父对象、视图、最终整型位置、长id){
微调器微调器=(微调器)父对象;
if(spinner.getId()==R.id.spinner1){
dbRepo=newdbrepo(getApplicationContext());
最终列表List=dbRepo.getItems1();
适配器=新自定义(Category.this、R.layout.view\u条目、列表);
adapter.setDropDownViewResource(android.R.layout.simple\u list\u item\u 1);
adapter.notifyDataSetChanged();
lv.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
低压设置适配器(适配器);

}

上述查询是正确的,或者我使用这两个查询来解决我的问题

  String selectQuery = "SELECT * FROM " + TABLE_ITEM + " WHERE " + KEY_CID + " ='" + cid + "'";
  Cursor c = db.rawQuery(selectQuery, null);

并更改代码微调器。setonItemSelected如下所示

spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                handler = new DBSQLite(getBaseContext());
                String selected = (String) parent.getItemAtPosition(position);
               // Toast.makeText(getApplicationContext(), selected, Toast.LENGTH_SHORT).show();
                String cid = handler.getCid(selected);
                final ArrayList<Support> item = handler.getItems(cid);
                adapter = new CustomAdapter(AvailableItems.this, R.layout.available_view, item);
                lv.setAdapter(adapter);
                adapter.notifyDataSetChanged();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
spinner1.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
handler=newdbsqlite(getBaseContext());
所选字符串=(字符串)parent.getItemAtPosition(位置);
//Toast.makeText(getApplicationContext(),选中,Toast.LENGTH_SHORT.show();
字符串cid=handler.getCid(选中);
最终ArrayList项=handler.getItems(cid);
adapter=新的CustomAdapter(AvailableItems.this,R.layout.available\u视图,项);
低压设置适配器(适配器);
adapter.notifyDataSetChanged();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

我已经提到,这是调试过的代码…调试后,ListView中没有显示任何内容,您确定问题出在select not later中吗?是的,因为我设置了上次支持。KEY_CID+“=0”显示具有CID 0的项您如何执行此查询?如何填充视图?这里没有足够的内容。现在检查代码。。。
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                handler = new DBSQLite(getBaseContext());
                String selected = (String) parent.getItemAtPosition(position);
               // Toast.makeText(getApplicationContext(), selected, Toast.LENGTH_SHORT).show();
                String cid = handler.getCid(selected);
                final ArrayList<Support> item = handler.getItems(cid);
                adapter = new CustomAdapter(AvailableItems.this, R.layout.available_view, item);
                lv.setAdapter(adapter);
                adapter.notifyDataSetChanged();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });