安卓——如何向realm数据库中添加和删除对象?

3
我将尝试在我的应用程序中实现收藏列表。为此,我使用realm作为数据库来存储内容。我能够成功地添加内容,但是在尝试删除项目时,应用程序会崩溃。我正在尝试使用电影ID变量作为主键来删除对象。但它导致了应用程序崩溃。 任何帮助都将不胜感激。
添加和删除内容的代码:
       mFavoriteButton.setOnFavoriteChangeListener(new MaterialFavoriteButton.OnFavoriteChangeListener() {
            @Override
            public void onFavoriteChanged(MaterialFavoriteButton buttonView, boolean favorite) {
                if(!favorite) {
                    SharedPreferences.Editor editor = getSharedPreferences("com.thejoker.yts", MODE_PRIVATE).edit();
                    editor.putBoolean("Fav Checked", false);
                    editor.commit();
                    RealmResults<FavoriteListRealm> results = mRealm.where(FavoriteListRealm.class).equalTo("realmMovieId", movieId).findAll();

                    mRealm.beginTransaction();
                    mResults.remove(results);
                    mRealm.commitTransaction();
                    Toast.makeText(getContext(), "Not a favorite", Toast.LENGTH_SHORT).show();
                }
                if(favorite) {
                    SharedPreferences.Editor editor = getSharedPreferences("com.thejoker.yts", MODE_PRIVATE).edit();
                    editor.putBoolean("Fav Checked", true);
                    editor.commit();
                    mRealm.beginTransaction();
                    FavoriteListRealm favorites = mRealm.createObject(FavoriteListRealm.class);
                    favorites.setRealmMovieId(movieId);
                    favorites.setRealmMovieTitle(movieTitle);
                    favorites.setRealmThumbnailUrl(movieUrlThumbnail);
                    favorites.setRealmMovieYear(movieYear);
                    mRealm.copyToRealmOrUpdate(favorites);
                    mRealm.commitTransaction();
                    mResults = mRealm.where(FavoriteListRealm.class).findAllAsync();
                    Toast.makeText(MovieDetailsActivity.this, mResults.toString(), Toast.LENGTH_LONG).show();
                }
            }
        });

问题是什么?请明确清晰! - cramopy
如何从 Realm 中删除对象。这是我的问题。 - Hrithik Pisharody
2个回答

4

一旦方法clear()被弃用,你应该使用:

realm.deleteAll()

或者
results.deleteAllFromRealm()

Source: Realm Documentation


2

3
这种方法似乎已经不推荐使用了。 - Agna JirKon Rx
1
clear()已经过时,您可以使用deleteAllFromRealm()代替。 - Stéphane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接