如何在getView方法

时间:2016-08-14 19:52:41

标签: android

我正在使用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;

}

1 个答案:

答案 0 :(得分:0)

分层。查询和投影某些数据的过程并不相同。将您的数据提取到DAO或db访问层,获取它并将结果设置为自定义列表视图的源列表。