2017-08-23 7 views
0

私のAndroidアプリケーションでは、Realmを使用してデータを保存しようとしています。データ構造は次のようになります。 これはCrimeDatabaseのオブジェクトのリストです。 CrimeDatabaseには、DateHashMap<LatLng, CrimeIncident>という2つの属性があります。 HashMapの鍵は犯罪の座標を格納するLatLngであり、CrimeIncidentは他の情報を格納する私のカスタムクラスオブジェクトです。要するにだから、私のデータ構造視覚は次のようになります。Realm Java:HashMapとLatLngのサポート

DATE 08/01/2017 
    - HashMap<LatLng, CrimeIncident> 
     - LatLng: 39.9526° N, 75.1652° W 
     - CrimeIncident: Address, Time, CrimeType 
    - HashMap<LatLng, CrimeIncident> 
     - LatLng: 39.9530° N, 75.1648° W 
     - CrimeIncident: Address, Time, CrimeType 
DATE 08/02/2017 
    - HashMap<LatLng, CrimeIncident> 
     - LatLng: 39.9533° N, 75.1659° W 
     - CrimeIncident: Address, Time, CrimeType 
    - HashMap<LatLng, CrimeIncident> 
     - LatLng: 39.9524° N, 75.1630° W 
     - CrimeIncident: Address, Time, CrimeType 

以下は私のコードです。私は、レルムも私がHashMapCrimeDatabase内部のオブジェクトを置くことを許可していませんthis answer

public class CrimeRealmObject extends RealmObject { 
    public RealmList<CrimeDatabase> crimeMap; 
} 

public class CrimeDatabase extends RealmObject { 
    private Date date; 
    private HashMap<LatLng, CrimeIncident> myHashMap; 
} 

からRealmList内CrimeDatabaseオブジェクトをラップのアプローチを行いました。私もキー/値属性を持つRealmHashMapクラスを作成しようとしましたが、それはLatLngがサポートされていなかったというエラーを投げました。

この作品を作成する方法についてのご意見はありますか?ありがとう!

+0

は 'Map'は、レルムでサポートされていない条件として、その指定した日付とRealmQueryを行います。回避策についてはhttps://stackoverflow.com/questions/35311755/realm-orm-how-to-deal-with-mapsをご覧ください。 – beeender

+0

私はそれについて知っており、私はその答えを試みました。私の質問の下半分をお読みください。 –

+0

LatLngがサポートされていない場合は、double属性(緯度と経度の両方)のオブジェクトを作成する方法はありますか?後でdouble属性からLatLngオブジェクトを作成するメソッドを後で作成することができます。 –

答えて

0

各構造を1つのRealmObjectに簡単にマップし、レルムに保存して、簡単に使用できます。あなたが与えられた日付のオブジェクトが必要な場合は

CrimeIncident extends RealmObject { 
    Date date; 
    double lat; 
    double lng; 
    String address; 
    Date time; 
    String crimeType; 

はその後、ちょうど

+0

答えをありがとう。だから私はすべての 'CrimeIncident'オブジェクトを大きな' RealmList'に入れて、特定の日付の犯罪インシデントを取得するためにデータベース全体を照会する必要がありますか?または、データへのより迅速なアクセスのために、それらをRealmの何らかのHashMapに置くことができますか? –

+0

何ですか? RealmListは関与していません。このオブジェクトのみです。あなたがそれらを照会するとき、あなたはそれらをRealmResultsとして得る – EpicPandaForce

関連する問題