领域插入NullPointerException

时间:2017-12-23 10:38:25

标签: java android nullpointerexception realm

将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;
    }
}

1 个答案:

答案 0 :(得分:0)

我建议你做这样的事情:

首先,当您打开应用时,init Realm只会立即启动一次:

public class StartApplication
            extends Application {

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

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

Realm realm = Realm.getDefaultInstance();
相关问题