2016-03-05 6 views
9

मैं एक वस्तु हैरियलम एंड्रॉइड - मैं RealmResults वस्तुओं की सरणी में कैसे परिवर्तित कर सकता हूं?

public class ArticleList extends RealmObject { 

@PrimaryKey 
private String id; 
private String title; 
private String subtitle; 
private String image; 
private String category; 

} 

मुझे क्या करना चाहते हैं क्षेत्र से परिणाम और उन्हें ArticleList[]

के परिणाम कन्वर्ट लायें

RealmResults<ArticleList> results = realm.where(ArticleList.class).equalTo("category", "CategoryName").findAll(); 

क्या मेरे पास हैं का उपयोग करके मैं क्या लाने के लिए है वस्तुओं की एक सरणी पाने के लिए आगे करने के लिए?

+3

क्यों 'RealmResults' का उपयोग सीधे नहीं करें? डेटा रखने के लिए आपको अन्य डेटा संरचना की आवश्यकता क्यों है? – pskink

+0

आपको सूचीदृश्य के लिए 'RealmBaseAdapter' का उपयोग करना चाहिए। – EpicPandaForce

उत्तर

9

RealmResults में toArray() विधि है - toArray(T[] contents) (RealmResults विरासत श्रृंखला नोट करें)। इस प्रकार आप इन का उपयोग कर सकते हैं:

ArticleList[] resultArray = (ArticleList[]) results.toArray(); 

या

ArticleList[] resultArray = results.toArray(new ArticleList[results.size()]); 

आदर्श रूप में, आप के बजाय RealmResults उपयोग करना चाहते हैं चाहते हैं। यह आपको अपने डेटा में "free" updates, साथ ही साथ List की सभी सुविधाएं प्राप्त करने की अनुमति देता है।

+0

कंपाइलर असंगत प्रकारों के बारे में शिकायत करता है :(https://s.mail.ru/oRPdhBqpwCrp/img-2016-03-05-15-14-37.png –

+0

@AlexeyK Adam S सही है: इसके बजाय 'RealmResults' का उपयोग करें, अगर आपको 'ListView' के एडाप्टर के लिए इसकी आवश्यकता है,' एडमॉप्टर 'को स्वीकार करने वाले एडाप्टर को ढूंढें (या लिखें), जैसे' android.widget.CursorAdapter 'जो' कर्सर ' – pskink

+0

स्वीकार करता है, मैंने दिखाया कि' toArray 'का उपयोग कैसे करें() 'विधि। हालांकि एक बार फिर - * यह शायद एक बुरा विचार है * –

21

सरल जावा ArrayList में परिवर्तित करने के:

ArrayList<People> list = new ArrayList(mRealm.where(People.class).findAll()); 
+0

क्या होगा यदि पृष्ठभूमि थ्रेड में लोगों में कोई तत्व हटा दिया जाता है? – EpicPandaForce

+0

तब डेवलपर को उस ऑब्जेक्ट को वास्तविक लेनदेन में उसी समय हटा देना चाहिए। – Farhan

+0

हाँ , या रीयल चेंज श्रोता में सरणी का पुनर्निर्माण – EpicPandaForce

2

इसके बजाय एक सरणी में बदलने की कोशिश कर के, आप सार RealmBaseAdapter वर्ग https://github.com/realm/realm-android-adapters से विस्तार करना चाहिए सिंक में अपने परिणामों को रखने के लिए।

दायरे इन कक्षाओं को एक पुनर्चक्रण दृश्य या सूची दृश्य के साथ स्वत: अद्यतन सूची बनाने का उदाहरण प्रदान करता है।

+1

@CarlSmith पर नहीं पारित कर सकते हैं, नहीं, यह अभी भी बहिष्कृत कन्स्ट्रक्टर को हटा दिया गया है,' RealmBaseAdapter' अभी भी है ठीक है https://github.com/realm/realm-android-adapters/blob/master/adapters/src/main/java/io/realm/RealmBaseAdapter.java – EpicPandaForce

+0

इसलिए मेरी गलती के लिए खेद है, @EpicPandaForce। मैंने टिप्पणी हटा दी है। –

10
List<ArticleList> unmanagedList = realm.copyFromRealm(results); 

ऐसा करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे