如何在其他类的领域中使用数据? (机器人)

时间:2016-04-13 08:09:13

标签: android realm

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

当我想在另一个类中查询时,它与realm有错误 - >> io.realm.Realm.allObjects(java.lang.Class中)'在空对象引用上

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

1 个答案:

答案 0 :(得分:0)

你是如何在第二课中创建领域实例的?如果你没有调用{{1}},那么变量将为null,从而导致你看到的NullPointerException。