2015-10-14 4 views
0

Я хочу отобразить некоторые RealmObjects (идеи) из RealmList (ideaList) в Recyclerview. Звучит просто. Но когда я пытаюсь удалить объект, это хотя, когда я сделать запрос (для получения всех идей от конкретного пользователя)Удалить объект RealmObject, отображаемый в RecyclerView

примеры кода:

запрос:

public RealmList<Idea> getIdeaListFromRealm(Context ctx) { 
    realm = Realm.getInstance(ctx); 
    RealmQuery<Idea> ideaQuery = realm.where(Idea.class); 
    RealmResults<Idea> ideaQueryResults = ideaQuery.equalTo("owner.id",""+LoginFragment.loggedOwner.getId()).findAll(); 
    RealmList<Idea> ideaList = new RealmList<>(); 
    ideaList.addAll(ideaQueryResults); 
    return ideaList; 
} 

удалить (OnClick) :

holder.delete.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      realm.beginTransaction(); 
      ideaList.remove(position); 
      notifyDataSetChanged(); 
      realm.commitTransaction(); 
      fragmentStateHandler.replaceFrag(Frag.ARCHIVEFRAGMENT); 
     } 
    }); 

Я думаю, что я не удалить его надлежащим образом. Не может быть другой причины, потому что она все еще присутствует в запросе после удаления.

Что я делаю неправильно? заранее заранее

+0

Кто-нибудь? ........ –

ответ

2

Вы удаляете объект только от RealmList, который не сохраняется на всех.

Вы должны удалить объект либо из результатов, либо непосредственно через экземпляр объекта. например

realm.beginTransaction(); 

ideaQueryResults.remove(position); 

// alternatively: 

Idea idea = ideaQueryResults.get(position); 
idea.removeFromRealm(); 

realm.commitTransaction(); 

// from the docs: it will always be more efficient to 
// use the more specific change events if you can. 
// Rely on notifyDataSetChanged() as a last resort. 
notifyItemRemoved(position); 
+1

Я думаю, что вы должны совершить, прежде чем вы сообщите о наборе данных. – EpicPandaForce

+0

Хороший вопрос - отредактировал мой ответ. – marius

+0

о человеке. im настолько глупый ха-ха .. спасибо :) это работает! –

Смежные вопросы