2016-04-13 6 views
0

Dies ist die Methode stopPing() in MainActivity zum Speichern von Daten in Realm. Wenn ich Daten in Realm von einer anderen Klasse verwenden möchte, wie kann ich codieren.Wie kann ich Daten im Realm einer anderen Klasse verwenden? (android)

private void stopPing() { 
    linkEdt.setEnabled(true); 
    pingBtn.setText("Start Ping"); 
    isPing = false; 
    count = 0; 

    endTime = getTime(); 

    /* Open the Realm for the UI thread. */ 
    realm = Realm.getInstance(realmConfig); 

    /* All writes must be wrapped in a transaction to facilitate safe multi threading */ 
    realm.beginTransaction(); 

    Ping ping = realm.createObject(Ping.class); 

    /* Add ip */ 
    ping.set_ip(ip); 

    /* Add start time */ 
    ping.set_startTime(startTime); 

    /* Add end time. */ 
    ping.set_endTime(endTime); 

    /* Add down amount */ 
    ping.set_downAmount(downtime); 

    /* Add ping speed time. */ 
    PingTime pingtime = realm.createObject(PingTime.class); 

    for(Double speedTime : speedList){ 
     pingtime.time = speedTime; 
     ping.get_times().add(pingtime); 
    } 

    /* Add time. */ 
    for(String time : timeList){ 
     pingtime.pingTime = time; 
     ping.get_pingTime().add(pingtime); 
    } 

    realm.commitTransaction(); 

    /* stop handler. */ 
    this.mHandler.removeCallbacks(m_Runnable); 
} 

Wenn ich in einer anderen Klasse abfragen möge hat es Fehler mit Reich - >> io.realm.Realm.allObjects (java.lang.Class)‘auf einer Null-Objekt Referenz

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ping_list); 


    for (Ping pers : realm.allObjects(Ping.class)) { 

     String startT, endT; 
     if (pers.get_stratTime() == null) { 
      startT = "None"; 
     } else { 
      startT = pers.get_stratTime(); 
     } 

     if (pers.get_endTime() == null) { 
      endT = "None"; 
     } else { 
      endT = pers.get_endTime(); 
     } 

     status += "Start time: " + startT + "\n End time: " + endT + "\n"; 
     status += "Ping total: " + pers.get_times().size() + "\n"; 
     status += "Down amount: " + pers.get_downAmount() + " time.\n"; 

     for (int i = 0; i < pers.get_times().size(); i++) { 
      double speed = pers.get_times().get(i).time; 
      String time = pers.get_pingTime().get(i).pingTime; 

      status += "time (" + (i + 1) + "): " + speed + " ms. at " + time + ".\n"; 
     } 

    } 

    System.out.println(status); 
} 

Antwort

0

Wie erstellen Sie die Realm-Instanz in der 2. Klasse? Wenn Sie realm = Realm.getInstance(...) nicht aufgerufen haben, ist die Variable null, was zu der NullPointerException führt, die Sie sehen.

+0

Danke. Ich habe Gebrauch gemacht. 'realm = Realm.getInstance (realmConfig); ' aber es hat nicht funktioniert. java.lang.IllegalArgumentException: Eine nicht-null RealmConfiguration muss angegeben werden –

+0

Sie können hier sehen, wie Sie eine RealmConfiguration erstellen und verwenden: https://github.com/realm/realm-java/blob/master/examples/introExample /src/main/java/io/realm/examples/intro/IntroExampleActivity.java#L55-Lundefined –

Verwandte Themen