【问题标题】:How to add search option to Android Spinner?如何向 Android Spinner 添加搜索选项?
【发布时间】:2012-04-30 07:13:49
【问题描述】:

我在 android spinner 中有很长的数据显示列表。所以我想为这个微调器添加一个搜索选项?谁能帮我一个简单的示例代码..(我看到了一些关于这个的答案,但它们还不够)..

我是 android 新手,我知道实际上这不是正确的方法。但我想将这种选项添加到微调器。当您在搜索框中点击一个字母时,项目列表会显示在与该字母相关的微调器中。非常感谢。

公共无效搜索(查看视图){

    cursor = db.rawQuery("SELECT * FROM tblRepTeritories WHERE RepCode like?", 
        new String[]{"%" + searchText.getText().toString() + "%"});


    SimpleCursorAdapter adapter1 = new SimpleCursorAdapter(
            this, 
            android.R.layout.simple_spinner_item, 
            cursor, 
            new String[] {"TeriCode"}, 
            new int[] {android.R.id.text1});

adapter1.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
// get reference to our spinner
Spinner s1 = (Spinner) findViewById( R.id.spinner2 );

s1.setAdapter(adapter1);


}

【问题讨论】:

  • 一点点解释一下。然后,发布您自己尝试过的代码。
  • @SpK 我试过的代码在上面..谢谢
  • 现在,它的工作与否。
  • @SpK 它正在工作。但它实际上不是我想要的。它只给出搜索结果。但我想要这种东西。“当你在搜索框上点击一个字母时,微调器弹出并且项目列表显示在与该字母相关的微调器中”。谢谢。
  • 也许你应该看看 AutoCompleteTextView 这可能适合你的需要。查看this tutorial

标签: android android-spinner


【解决方案1】:

使用TextWatcher,然后在您的适配器上调用notifyDataSetChanged()

searchText.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        cursor = db.rawQuery("SELECT * FROM tblRepTeritories WHERE RepCode like?", 
            new String[] {"%" + searchText.getText().toString() + "%"});
        adapter1.notifyDataSetChanged();

    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    相关资源
    最近更新 更多