选择查询以在微调器选择上加载项目

时间:2016-01-12 11:51:44

标签: sqlite select android-listview android-sqlite android-spinner

我有一个微调器从sqlite填充值(类别表中的类别)现在我需要一个选择查询来检索项目到listView。这样在微调器选择更改列表视图值也会改变。项目来自另一个表(项目).cid是项目表中的外键,cid是类别表中的主键我试过这个但是显示空列表视图....

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

}

1 个答案:

答案 0 :(得分:0)

以上查询为真,我也可以使用这两个查询来解决我的问题

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

OR

 Cursor c = db.rawQuery("SELECT * FROM item_table WHERE _CategoryID =? " ,new String[]{cid}, null );

并且更改也会像这样更改代码spinner.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) {

        }
    });