我正在使用Android应用,我使用的是realm数据库。我有listview的自定义布局,其中包含ImageView,标题,标签,描述。我使用realm.beginTransaction()在域中存储数据,我遇到困难如何在BaseAdapter(Custom ListView)的getView方法中调用这些数据。
这是我的RealmObject代码
public class Ads extends RealmObject {
@PrimaryKey
private String adId;
private String adTitle;
private String adTags;
private String adDescription;
private String adImages;
public Ads() {
}
public String getAdId() {
return adId;
}
public void setAdId(String adId) {
this.adId = adId;
}
public String getAdTitle() {
return adTitle;
}
public void setAdTitle(String adTitle) {
this.adTitle = adTitle;
}
public String getAdTags() {
return adTags;
}
public void setAdTags(String adTags) {
this.adTags = adTags;
}
public String getAdDescription() {
return adDescription;
}
public void setAdDescription(String adDescription) {
this.adDescription = adDescription;
}
public String getAdImages() {
return adImages;
}
public void setAdImages(String adImages) {
this.adImages = adImages;
}
}
这就是我在Activity中存储数据的方式
try {
realm = Realm.getDefaultInstance();
realm.beginTransaction();
Ads newAd = realm.createObject(Ads.class);
newAd.setAdId(UUID.randomUUID().toString());
newAd.setAdTitle(_txt_postTitle.getText().toString());
newAd.setAdTags("Android|Facebook|ChatHead");
newAd.setAdDescription(_txt_postDesc.getText().toString());
newAd.setAdImages(ImageString);
realm.commitTransaction();
Toast.makeText(TimeLineActivity.this, "Post Created", Toast.LENGTH_SHORT).show();
} catch (Exception ex) {
ex.printStackTrace();
}
现在问题来了,如何获取这些数据并将其用于getView方法中的BaseAdaper。
@Override
public View getView(int i, View convertview, ViewGroup viewGroup) {
ViewHolder holder;
if(convertview == null) {
convertview =inflater.inflate(R.layout.timeline_row_item,null);
holder = new ViewHolder();
realm = Realm.getDefaultInstance();
holder._imgProfilePic = (ImageView) convertview.findViewById(R.id.img_profile_pic);
holder._bigImage = (ImageView) convertview.findViewById(R.id.big_image);
holder._small_Image_a = (ImageView) convertview.findViewById(R.id.small_image_a);
holder._small_Image_b = (ImageView) convertview.findViewById(R.id.small_image_b);
holder._small_Image_c = (ImageView) convertview.findViewById(R.id.small_image_c);
holder._postTitle = (TextView) convertview.findViewById(R.id.txt_post_title);
holder._postTagLine = (TextView) convertview.findViewById(R.id.txt_post_tagline);
holder._postedOn = (TextView) convertview.findViewById(R.id.txt_posted_on);
holder._postDescription = (TextView) convertview.findViewById(R.id.txt_post_description);
holder._postPlusMore = (TextView) convertview.findViewById(R.id.txt_plus_more);
convertview.setTag(holder);
} else {
holder = (ViewHolder) convertview.getTag();
}
RealmResults<Ads> ads = realm.allObjects(Ads.class);
//Here Like
// Like holder._postTitle(getTitle From Realm Stored Data)
return convertview;
}
答案 0 :(得分:0)
分层。查询和投影某些数据的过程并不相同。将您的数据提取到DAO或db访问层,获取它并将结果设置为自定义列表视图的源列表。