相关疑难解决方法(0)

使用自定义(对象)适配器过滤ListView

我正在尝试实现使用自定义对象适配器的ListView的过滤,但我找不到任何有用的示例.包含的代码非常简单,所以不要记住我不能使用常规的ArrayAdapter.我在ListView上面有一个EditText,当用户在EditText小部件中输入文本时,我想通过EditText中写的文本过滤ListView.我们欢迎所有的建议!

以下是活动类的片段:

public class management_objects extends Activity {

private static List<User> UserList;
private EfficientAdapter adapter = null;
private ListView objectListView = null;
private EditText SearchText = null;

private static class EfficientAdapter extends BaseAdapter implements Filterable{
    private LayoutInflater mInflater;   

    public EfficientAdapter(Context context) {
        mInflater = LayoutInflater.from(context);
    }

    public int getCount() {
        return UserList.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder; …
Run Code Online (Sandbox Code Playgroud)

android listview filter adapter

62
推荐指数
2
解决办法
7万
查看次数

列表过滤器自定义适配器不给出结果

我正在开发应用程序,其中有列表和上面的编辑文本,我将在editText中键入内容的那一刻我应该得到结果匹配的类型word.bt我不能得到结果,Plz告诉我在哪里犯错误?以下是我的活动和适配器.

**活动**

public class ListFilterActivity extends ListActivity{

    ListView list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_filter);   

        list = getListView();
        list.isTextFilterEnabled();

//      final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
//                android.R.layout.simple_list_item_1, android.R.id.text1,
//                getModel());
        final CustomAdapter adapter = new CustomAdapter(ListFilterActivity.this, getModel());
        setListAdapter(adapter);
        EditText filterEditText = (EditText) findViewById(R.id.filterText);
        filterEditText.addTextChangedListener(new TextWatcher() {

            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                adapter.getFilter().filter(s.toString());
            }

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

            public void afterTextChanged(Editable s) { …
Run Code Online (Sandbox Code Playgroud)

android

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

adapter ×1

filter ×1

listview ×1