领域插入NullPointerException [重复]

问题描述 投票:-3回答:1

这个问题在这里已有答案:

插入List到Realm NullPointerException时抛出。请帮助我。

您能否建议我在Android中使用Realm DB Management进行最佳实践

我的代码:

public class DrinksFragment
        extends Fragment {

    private Realm realm;

    @Override
    public View onCreateView(
            LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_drinks, container, false);
        Realm.init(getActivity());
        realm = Realm.getDefaultInstance();
        return view;
    }

    public boolean drinksToDB(final List<ProductModel> productModel) {
        realm.executeTransactionAsync(new Realm.Transaction() {
            @Override
            public void execute(Realm bgrealm) {
                RealmList<ProductModel> realproductList = new RealmList<>();
                realproductList.addAll(productModel);
            }
        }, new Realm.Transaction.OnSuccess() {
            @Override
            public void onSuccess() {
                Log.d("REALM_DB_INSERT", "Data Inserted");
            }
        }, new Realm.Transaction.OnError() {
            @Override
            public void onError(Throwable error) {
                Log.d("REALM_DB_INSERT", error.getMessage());
            }
        });

        return true;
    }
}
java android nullpointerexception realm
1个回答
0
投票

我建议你做这样的事情:

首先,当您打开应用程序时,init Realm只会立即执行一次:

public class StartApplication
            extends Application {

        @Override
        public void onCreate() {
            super.onCreate();
            Realm.init(getApplicationContext());
        }
}

然后你可以在任何地方以这种方式获得领域对象:

Realm realm = Realm.getDefaultInstance();
© www.soinside.com 2019 - 2024. All rights reserved.