Получение данных с помощью дооснащения и Sugar ORM (кнопка создания закладки)

Всем привет. Я делаю новостное приложение для университета, и у меня проблемы с отображением сохраненных данных в другом действии. Im using retrofit to get data from internet and Sugar ORM to save data localy. So, news are displaying great and I created a CardView where it has a button "Read Later". The method to save data into database s working (at least on log it shows that it is working) but I cant получить сохраненные данные для активности read_later. Кроме того, у меня есть адаптер, содержащий onBindViewHolder.

@Override
public void onBindViewHolder(@NonNull MainArticalAdapter.ViewHolder viewHolder, int position) {
    final Article articleModel = articleArrayList.get(position);
    if (!TextUtils.isEmpty(articleModel.getTitle())){
        viewHolder.titleText.setText(articleModel.getTitle());
    }
    if (!TextUtils.isEmpty(articleModel.getDescription())) {
        viewHolder.descriptionText.setText(articleModel.getDescription());
    }
    if (!TextUtils.isEmpty(articleModel.getUrlToImage())){
        Picasso.get().load(articleModel.getUrlToImage())
                .resize(700,500)
                .centerInside()
                .into(viewHolder.imgView);
    }
    viewHolder.artilceAdapterParentLinear.setTag(articleModel);
    Button btn = viewHolder.btn_read_later;
    btn.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Article art = new Article();
                    art.setAuthor("Harun Shaban");
                    art.save();
                }
            }
    );

}

и Viewholder, который расширяет RecyclerView.ViewHolder

public class ViewHolder extends RecyclerView.ViewHolder {
    private TextView titleText, descriptionText;
    private LinearLayout artilceAdapterParentLinear;
    private ImageView imgView;
    private Button btn_read_later;
    public ViewHolder(@NonNull View view) {
        super(view);
        btn_read_later = view.findViewById(R.id.button_read_later);
        imgView = view.findViewById(R.id.article_adapter_image_view);
        titleText = view.findViewById(R.id.article_adapter_tv_title);
        descriptionText = view.findViewById(R.id.article_adapter_tv_description);
        artilceAdapterParentLinear = view.findViewById(R.id.article_adapter_ll_parent);
        artilceAdapterParentLinear.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        if (onRecyclerViewItemClickListener != null){
                            onRecyclerViewItemClickListener.onItemClick(getAdapterPosition(),view);
                        }
                    }
                }
        );
    }
}

и это в моем классе MainActivity, который содержит метод для отображения всех данных, полученных из Интернета путем модернизации.

private void showData(){
    // Second step to create the recycler view to show the data taken
    final RecyclerView mainRecycler = findViewById(R.id.activity_main_tv);
    final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
    mainRecycler.setLayoutManager(linearLayoutManager);

    // First step to create the response
    final APIInterface apiService = ApiClient.getClient().create(APIInterface.class);
    Call<ResponeModel> call = apiService.getLatestNews("techcrunch", API_KEY);

    //third step
    call.enqueue(new Callback<ResponeModel>() {
        @Override
        public void onResponse(Call<ResponeModel> call, Response<ResponeModel> response) {
            if (response.body().getStatus().equals("ok")){
                List<Article> articleList = response.body().getArticles();
                if (articleList.size()>0){
                    final MainArticalAdapter mainArticalAdapter = new MainArticalAdapter(articleList);
                    mainArticalAdapter.setOnRecyclerViewItemClickListener(MainActivity.this);
                    mainRecycler.setAdapter(mainArticalAdapter);
                }
            }
        }

        @Override
        public void onFailure(Call<ResponeModel> call, Throwable t) {
            Log.e("on Fail", t.toString());
        }
    });
}

Я пытался работать с той же логикой в ​​Read_later_Activity, но он вылетает. Это моя Read_later_activity…

    public void getDatafromDB() {
    List <Article> savedArticles = Article.listAll(Article.class);

    final RecyclerView read_later_recView = findViewById(R.id.activity_read_later_tv);
    final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
    read_later_recView.setLayoutManager(linearLayoutManager);

    if (savedArticles.size()>0){
        final MainArticalAdapter mainArticalAdapter = new MainArticalAdapter(savedArticles);
        mainArticalAdapter.setOnRecyclerViewItemClickListener((OnRecyclerViewItemClickListener) ReadLaterActivity.this);
        read_later_recView.setAdapter(mainArticalAdapter);

        //to retrieve the data from DB, by id (crashes)
        //Article art = Article.findById(Article.class, 0);
        //titleText_readLater.setText(art.getTitle());
/*Don`t know what to do*/
    }
}

Добавление журнала ошибок поможет нам отследить проблему.

Tyler Kiser 31.10.2018 13:11

Спасибо. Я нашел решение :)

Harun Sabban 01.11.2018 14:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
153
0

Другие вопросы по теме