Результаты области возвращают ноль - PullRequest
1 голос
/ 11 декабря 2019

У меня есть адаптер, модель и активность в моем приложении для Android.

Адаптер

public class Adapter extends RecyclerView.Adapter<Adapter.viewHolder> {
    private Context context;
    private List<ModelPost> modelPost;

    public Adapter(Context context, List<ModelPost> modelPost) {
        this.context = context;
        this.modelPost = modelPost;
    }

    @NonNull
    @Override
    public viewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_post, viewGroup, false);
        return new viewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull viewHolder viewHolder, int i) {
        ModelPost modelPost = this.modelPost.get(i);
        viewHolder.textView.setText(modelPost.getTitle());
        viewHolder.cardView.setOnClickListener(v -> {
            Intent intent = new Intent(Adapter.this.context, SinglePost.class);
            intent.putExtra("ID", modelPost.getID() + "");
            intent.putExtra("Title", modelPost.getTitle() + "");
            intent.putExtra("Content", modelPost.getContent() + "");
            intent.putExtra("Category", modelPost.getCategory() + "");
            intent.putExtra("Expert", modelPost.getExpert() + "");
            intent.putExtra("Image", modelPost.getImage() + "");
            intent.putExtra("URL", modelPost.getURL() + "");
            intent.putExtra("Video", modelPost.getVideo() + "");

            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        });
        Glide.with(context)
                .load(modelPost.getImage())
                .skipMemoryCache(true)
                .thumbnail(0.2f)
                .placeholder(R.drawable.loading)
                .into(viewHolder.image);
    }

    @Override
    public int getItemCount() {
        return modelPost.size();
    }

    class viewHolder extends RecyclerView.ViewHolder {
        CardView cardView;
        ImageView image;
        TextView textView;

        viewHolder(@NonNull View itemView) {
            super(itemView);
            cardView = itemView.findViewById(R.id.coCard);
            image = itemView.findViewById(R.id.coImage);
            textView = itemView.findViewById(R.id.coTitle);
        }
    }
}

ModelPost

public class ModelPost extends RealmObject implements Serializable {
    int ID;
    private String Title;
    private String Image;
    private String Content;
    private String Category;
    private String Expert;
    private String URL;
    private String Video;

    public ModelPost() {

    }

    public Integer getID() {
        return ID;
    }

    public void setID(Integer ID) {
        this.ID = ID;
    }

    public String getTitle() {
        return Title;
    }

    public void setTitle(String title) {
        Title = title;
    }

    public String getImage() {
        return Image;
    }

    public void setImage(String image) {
        Image = image;
    }

    public String getContent() {
        return Content;
    }

    public void setContent(String content) {
        Content = content;
    }

    public String getCategory() {
        return Category;
    }

    public void setCategory(String category) {
        Category = category;
    }

    public String getExpert() {
        return Expert;
    }

    public void setExpert(String expert) {
        Expert = expert;
    }

    public String getURL() {
        return URL;
    }

    public void setURL(String URL) {
        this.URL = URL;
    }

    public String getVideo() {
        return Video;
    }

    public void setVideo(String video) {
        Video = video;
    }

Я использовал этот запрос для получения данных из моделив SinglePost Activity.

realm.executeTransaction(realm -> {
RealmResults<ModelPost> results = realm.where(ModelPost.class).findAll();

, и я определил их в классе

Realm realm;
List<ModelPost> modelPost = new ArrayList<>();

Но results возвращает ноль. Как я могу получить значения из ModelPost? Я думаю ModelPost.class не имеет данных в деятельности. На самом деле я не знаю, как определить modelPost в Activity. Как я могу определить ModelPost с данными с сервера в этом упражнении?

Ответы [ 2 ]

1 голос
/ 11 декабря 2019
@Override
public int getItemCount(){
return modelPost==null ? 0: modelPost.size();
}

And follow the documentation of realm 
https://realm.io/docs/java/latest/#writes
0 голосов
/ 11 декабря 2019
 @Override
        public int getItemCount() {
         if(modelPost != null){       
    return modelPost.size();

    }else{
     return 0;
    }
}
...