如何在android中使用listView上的搜索来选择匹配项?

如何在android中使用listView上的搜索来选择匹配项?,android,listview,search,Android,Listview,Search,我在sqlDataBase中创建了一个表,如下所示,并希望在其上放置search选项。我想从ListView中选择与可搜索面板中的单词匹配的自定义颜色的项目。 我怎么做 MainActivity.java: public class MainActivity extends AppCompatActivity { private ListView listView; private AddAdapter adapter; private DataBaseClass

我在sqlDataBase中创建了一个表,如下所示,并希望在其上放置
search
选项。我想从ListView中选择与可搜索面板中的单词匹配的自定义颜色的项目。 我怎么做

MainActivity.java:

    public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private AddAdapter adapter;
    private DataBaseClass classDB;
    private SQLiteDatabase sqlDB;

    public final static ArrayList<String> _id=new ArrayList<String>();
    public final static ArrayList<String> _name = new ArrayList<String>();
    public final static ArrayList<String> _info = new ArrayList<String>();

    private EditText search;

    public  String doneIntent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.ListView);

        classDB =new DataBaseClass(this);

  // search panel
        search= (EditText) findViewById(R.id.search_panel);
        search.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                MainActivity.this.adapter.getFilter().filter(charSequence);
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
       }
public类MainActivity扩展了AppCompatActivity{
私有列表视图列表视图;
专用适配器;
私有数据库类classDB;
专用数据库sqlDB;
public final static ArrayList_id=new ArrayList();
public final static ArrayList_name=new ArrayList();
public final static ArrayList_info=new ArrayList();
私人编辑文本搜索;
公共字符串内容;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(listView)findViewById(R.id.listView);
classDB=新数据库类(此);
//搜索面板
search=(EditText)findViewById(R.id.search\u面板);
search.addTextChangedListener(新的TextWatcher(){
@凌驾
更改前的公共无效(CharSequence CharSequence,int i,int i1,int i2){
}
@凌驾
public void onTextChanged(CharSequence CharSequence,int i,int i1,int i2){
MainActivity.this.adapter.getFilter().filter(charSequence);
}
@凌驾
public void PostTextChanged(可编辑){
}
});
}
AddAdapter.class:

public class AddBankAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> Bid, Bname, Binfo;

public AddAdapter(Context c , ArrayList<String> id ,ArrayList<String> name, ArrayList<String> info){
context=c;
Bid=id; Bname=name; Binfo=info;  
}


@Override
public int getCount() {
    return Bid.size();
}

@Override
public Object getItem(int i) {
    return null;
}

@Override
public long getItemId(int i) {
    return 0;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
   ...
}
公共类AddBankAdapter扩展了BaseAdapter{
私人语境;
私人ArrayList投标,Bname,Binfo;
公共AddAdapter(上下文c、ArrayList id、ArrayList名称、ArrayList信息){
上下文=c;
Bid=id;Bname=name;Binfo=info;
}
@凌驾
public int getCount(){
返回Bid.size();
}
@凌驾
公共对象getItem(int i){
返回null;
}
@凌驾
公共长getItemId(int i){
返回0;
}
@凌驾
公共视图getView(int i、视图视图、视图组视图组){
...
}
什么是
getFilter()

如何为项目着色?

这可能会对您有所帮助,但您需要为过滤后的元素添加颜色


虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。我的问题是,为什么
getfilter()
方法没有为我初始化?