我需要你的帮助:) 我有一个EditText,在ExpandableListView下面。我使用了BaseExpandableListAdapter和groups / child。我希望当用户在EditText中写入时,ExpandableListView只显示插入了文本的组(项)。 我认为我必须创建一个过滤器。 这里有一段我的源代码。有人可以帮帮我吗?提前谢谢
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState
setContentView(R.layout.main);
et = (EditText) findViewById(R.id.filterText);
et.setSingleLine();
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
if (et.getText().toString().equals(""))
elv.setBackgroundColor(Color.BLACK);
else
{
elv.setBackgroundColor(Color.WHITE);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
elv=getExpandableListView();
mAdapter = new MyExpandableListAdapter(fields_select,description);
elv.setAdapter(mAdapter);
class MyExpandableListAdapter extends BaseExpandableListAdapter {
......
}
答案 0 :(得分:5)
我解决了,我以这种方式实现了Filterable接口:
class MyExpandableListAdapter extends BaseExpandableListAdapter implements Filterable{
然后我重写了getfilter()方法。最后,我编写了一个扩展Filter类的类。
public Filter getFilter() {
Filter filter = new MyFilter();
return filter;
}
private class MyFilter extends Filter{