Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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
Java 如何使用下拉选项卡作为listview的筛选器_Java_Android_Sqlite_Listview_Android Listview - Fatal编程技术网

Java 如何使用下拉选项卡作为listview的筛选器

Java 如何使用下拉选项卡作为listview的筛选器,java,android,sqlite,listview,android-listview,Java,Android,Sqlite,Listview,Android Listview,这是我现在所拥有的。我的listview在上面使用onitemselected时会正常填充,但当我注释掉它或尝试在微调器onitemselected中使用where子句方法时,它不起作用 活动 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview_supports); try {

这是我现在所拥有的。我的listview在上面使用onitemselected时会正常填充,但当我注释掉它或尝试在微调器onitemselected中使用where子句方法时,它不起作用

活动

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_supports);

    try {
        openDB();
    } catch (SQLException e) {
        e.printStackTrace();
    }

//populateListFromDbSupports();


    final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
    final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.typeArray, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(
            android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(adapter);
    spinner2.setOnItemSelectedListener(this);

    spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(ViewSupports.this,
                    "You selected " + spinner2.getSelectedItem(),
                    Toast.LENGTH_LONG).show();


            final String type = (String) spinner2.getSelectedItem();

            final ImageView im = (ImageView) findViewById(R.id.imageView2);

            if (type.equals("One-Hole"))
                im.setImageDrawable(getResources().getDrawable(R.drawable.a167));
            //populateOneHole();
            if (type.equals("Two-Hole"))
                im.setImageDrawable(getResources().getDrawable(R.drawable.twohole));
            populateTwoHole();
            if (type.equals("One-Piece Strut"))
                im.setImageDrawable(getResources().getDrawable(R.drawable.a174));
            if (type.equals("Two-Piece Strut"))
                im.setImageDrawable(getResources().getDrawable(R.drawable.a131));
            if (type.equals("Mineralac"))
                im.setImageDrawable(getResources().getDrawable(R.drawable.a116));


//                myCursorAdapter.setFilterQueryProvider(new FilterQueryProvider() {
//                    @Override
//                    public Cursor runQuery(CharSequence constraint) {
//                        return DB.fetchSupportsBySize(type);
//
//                    }
//                });
            Log.d(null, type, null);
            //DB.fetchSupportsBySize(type);


        }




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

        }

这并不复杂,使用一个由like查询支持的过滤器查询提供程序,并从微调器传递
字符串。必须使用
listView.setFilterEnabled(true)
我将以感谢为例,只需将
编辑文本
替换为
微调器
,并在选择时获取
微调器
文本-将此文本传递给您的
过滤器查询提供程序
。使用like查询或where子句取决于您的使用情况,如果您有确切的单词匹配,则可以删除like子句。我想我理解这个示例是如何工作的。我看到,当它从数据库中获取数据时,它是在一个查询中获取所有数据。在我的应用程序中有几个游标,每列一个。我不确定我能不能像那样使用惰性适配器。我迷路了。。明天我必须看一看这个例子,然后再做一些研究。天网你能帮我吗?请你给了我很好的方向我想我还需要一点
public static Cursor fetchSupportsBySize(String inputText) throws     SQLiteException {
    Log.w(TAG, inputText);
    Cursor mCursor = null;
    if (inputText == null ||inputText.length() == 0) {
        mCursor = db.query(SUPPORT_TABLE, new String[]{KEY_SUPPORT_ROWID, KEY_SUPPORT_SIZE, KEY_SUPPORT_TYPE, KEY_SUPPORT_MANUFACTURER, KEY_SUPPORT_PARTNUMBER},
                null, null, null, null, null);
    }
    else  {
        mCursor = db.query(true, SUPPORT_TABLE, new String[] {KEY_SUPPORT_ROWID, KEY_SUPPORT_SIZE, KEY_SUPPORT_TYPE, KEY_SUPPORT_MANUFACTURER, KEY_SUPPORT_PARTNUMBER},
                KEY_SUPPORT_SIZE + inputText, null, null, null, null, null);



    }
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

public static Cursor fetchAllSupports() {
    Cursor mCursor = db.query(SUPPORT_TABLE, new String[] {KEY_SUPPORT_ROWID, KEY_SUPPORT_SIZE, KEY_SUPPORT_TYPE, KEY_SUPPORT_MANUFACTURER, KEY_SUPPORT_PARTNUMBER},
            null, null, null, null, null);

    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}



public static Cursor getAllSupportsBySize() {
    return db.query(SUPPORT_TABLE, null, "support_size=?", new String[]{"1/2"}, null, null, null);

}
public static Cursor getOneHoles() {
    return db.query(SUPPORT_TABLE, null, "support_type=?", new String[]{"One-Hole"}, null, null, null);

}
public static Cursor getTwoHoles() {
    return db.query(SUPPORT_TABLE, null, "support_type=?", new String[]{"Two-Hole"}, null, null, null);

}
    });










}