2016-04-13 9 views
0

これは、データを領域に保存するためのMainActivityのstopPing()メソッドです。 別のクラスのレルムでデータを使用したい場合、どのようにコーディングできますか。別のクラスのレルムでデータを使用するにはどうすればよいですか? (アンドロイド)

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); 
} 

私は別のクラスで照会するとき、それはレルムに誤りがある - 「>> io.realm.Realm.allObjects(のjava.lang.Class)をnullオブジェクト参照の

@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); 
} 

答えて

0

2階でレルムインスタンスを作成する方法は? realm = Realm.getInstance(...)を呼び出さなかった場合、変数はnullになり、NullPointerExceptionが発生します。

+0

ありがとうございました。私は使用している。 'realm = Realm.getInstance(realmConfig); ' が動作しませんでした。 java.lang.IllegalArgumentException:nullではないRealmConfigurationを指定する必要があります –

+0

RealmConfigurationを作成して使用する方法はここにあります:https://github.com/realm/realm-java/blob/master/examples/introExample /src/main/java/io/realm/examples/intro/IntroExampleActivity.java#L55-Lundefined –

関連する問題