У меня есть адаптер, модель и активность в моем приложении для 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
с данными с сервера в этом упражнении?