2017-08-09 9 views
1

日付と時刻を扱うときに領域結果データを変更するにはどうすればよいですか? ASCENDINGとDESCENDINGだけでは十分ではありません。RealmResultが時間制約を処理する

たとえば、私は任務の1時間以内に仕事を得ていますか?

RealmResults<Task> tmp = realm.where(Task.class).findAll(); 
for (final Task task : tmp) { 
      String dateFormat = Utility.TIMEFORMAT; 
      String current = "2:30:00 PM"; 
      Date currentTime = new Date(task.gettime()); 
      //currentTime = new SimpleDateFormat(dateFormat).parse(current); 
        if(isIncomingWithInHour(currentTime, calendar)){ 
         realmresult.add(tmp) /// this result in error. 
        } 
     } 

ASCENDINGとDESCENDINGが分かるように、この種の並べ替えでは機能しません。とにかくreamlResultをアダプタに戻すには? RealmresultにはonchangeListenerがあり、私はそれを使いたいです。

答えて

2

代わりの

:あなたは、次のようアダプタデータを更新することができます - アダプターを通知

RealmResults <Task> tasksInOneHourList = 
realm.where(Task.class).between("TIME_LONG_FIELD_NAME", CURRENT_TIME, CURRENT_TIME + HOUR_IN_MILLIS).findAll(); 
  • :レルムは、私たちが利用することができな機能を選んで素敵なクエリを、持っています

    RealmResults<Task> tmp = realm.where(Task.class).findAll(); 
    

    RealmResults<Task> tasksInOneHour = realm.where(Task.class) 
                 .greaterThanOrEqualTo("time", startTime) 
                 .lowerThan("time", endTime) 
                 .findAll(); 
    
  • +0

    これは動作するようです。ありがとう – thenewbie

    2
    1. 時間の制約 - それはあなたのTaskクラスにお時間を保存入力したの分野では明らかではないが、私は長いフィールドのための答えを提供します(と、それは長くはない場合、私はあなたを示唆これを使って)。

      tasksInOneHourList.addChangeListener(new RealmChangeListener<RealmResults<Task>>() { 
          @Override 
          public void onChange(RealmResults<Task> tasks) { 
           adapter.notifyDataSetChanged(); 
          } 
      }); 
      
    関連する問題