更新RealmResults时,RealmBaseAdapter不更新Listview

时间:2016-08-19 08:59:16

标签: android listview realm

我当前的适配器实施

 RealmResults<Contact> contacts = realmController.getContacts();
 contactAdapter = new ContactAdapter(ContactsActivity.this, contacts);
 contactsListView.setAdapter(contactAdapter);

我已经为contactAdapter扩展了RealmBaseAdapter,以便与listView一起使用

我还有一个搜索编辑文本,用户将在其中搜索联系人。

    searchUser.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) {
            contacts = realmController.searchContact(searchUser.getText().toString());
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

此处联系人已更新,但列表视图未更改。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您应该致电contactAdapter.updateData(contacts),以便实际替换适配器内的结果。

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        contacts = realmController.searchContact(searchUser.getText().toString());
        contactAdapter.updateData(contacts);
    }