2016-08-14 107 views
0

我正在开发Android应用程序,我正在使用领域数据库。我有自定义的列表视图,其中包含一个ImageView,标题,标签,说明。我使用realm.beginTransaction()在realm中存储数据,我面临困难,我如何在BaseAdapter(自定义ListView)的getView方法中调用这些数据。如何在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; 
} 

}

这就是我如何存储在活动数据

 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

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

+0

你能举一些代码示例吗 –

+0

检查一下。 https://www.youtube.com/watch?v=nmwecyCDAi8 – Tugrul

+0

谢谢,问题解决了 –