Не удается получить данные из базы данных ROOM - PullRequest
0 голосов
/ 08 октября 2019

Я занимаюсь разработкой приложения для Android с использованием Android Studio, у меня есть метод, который извлекает данные из базы данных ROOM, но есть ошибка времени выполнения, которую я не могу решить. проблема не из-за контекста

Это код (деятельность), который извлекается из базы данных

public class cartActivity extends AppCompatActivity  {
RecyclerView recycler_cart;
Button btn_place_order;
CompositeDisposable compositionDisposable;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.activity_cart );

    compositionDisposable = new CompositeDisposable();
    recycler_cart = (RecyclerView) findViewById( R.id.recycler_cart );
    recycler_cart.setLayoutManager( new LinearLayoutManager( this ) );
    recycler_cart.setHasFixedSize( true );

    btn_place_order = (Button) findViewById( R.id.btn_place_order );
    loadCartItems(); //it was a comment!!!!!
}


@Override
protected void onStop() {
    compositionDisposable.clear();
    super.onStop();
}

@Override
protected void onDestroy() {
    compositionDisposable.clear();
    super.onDestroy();
}

private void loadCartItems() {

    compositionDisposable.add(

          Common.cartRepository.getCartItems().observeOn(AndroidSchedulers.mainThread())
                  .subscribeOn(Schedulers.io() )
                  .subscribe( new Consumer<List<Cart>>() {
                      @Override
                      public void accept(List<Cart> carts) {
                          displayCartItem(carts);
                      }
                  } )



    );


}
private void displayCartItem(List<Cart> carts){
    CartAdapter cartAdapter=new CartAdapter(this,carts);
    recycler_cart.setAdapter(cartAdapter);
}
}

, и этот класс (фрагмент), который сохраняет элемент в базе данных

 addBTn.setOnClickListener( new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                Cart cart=new Cart(productNameTxt.getText().toString());
                                cart.setName( (String) productNameTxt.getText() );
                                //cart.setPrice(Integer.parseInt( (String ) productPriceTxt.getText()  ));
                                CartDatabase.getInstance(getActivity().getApplicationContext()).cartDAO().insertToCart(cart); //?

                                Toast.makeText(getActivity(),"Item added successfully",Toast.LENGTH_SHORT).show();

а это ошибка

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.queueskip, PID: 3544
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
    at com.example.queueskip.Database.Local.CartDatabase.getInstance(CartDatabase.java:25)
    at com.example.queueskip.ui.home.HomeFragment$2$1$1.onClick(HomeFragment.java:169)
    at android.view.View.performClick(View.java:5721)
    at android.widget.TextView.performClick(TextView.java:10936)
    at android.view.View$PerformClick.run(View.java:22620)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:7406)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...