2017-06-10 13 views
0

レルムのチュートリアルを見て、OnEditorActionListenerのコードを実装しようとしました。それがコードです。私はJava 7を使用しているので、ラムダはありません。 IDEは、エラーが新しいRealmの前であると言います。 Transaction.Callback、ここでは***であり、期待される識別子です。RealmTransactions IDEエディタエラー:予想される識別子

myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if(actionId == EditorInfo.IME_ACTION_DONE){ 
       if (myEditText.getText()!=null){ 
        Realm.Transaction myTr = new Realm.Transaction() { 
         @Override 
         public void execute(Realm realm) { 
          Task newTask = realm.createObject(Task.class); 
          newTask.setText(myEditText.getText().toString()); 
         } 
        }, *** new Realm.Transaction.Callback(){ 
         @Override 
         public void onSuccess() { 
          Log.d("REALM TASK", "saved successfully"); 
         } 

         @Override 
         public void onError(Exception ignore) { 
          Log.d("REALM TASK", "not saved"); 
         } 
        }; 
       } 
       finish(); 
       return true; 
      } 
      else { return false; } 
     } 
    }); 

私が試した:

Realm.Transaction.Callback myCallback = (Realm.Transaction.Callback) myTr.Callback; 

答えて

1

代わりに

   Realm.Transaction myTr = new Realm.Transaction() { 
        @Override 
        public void execute(Realm realm) { 
         Task newTask = realm.createObject(Task.class); 
         newTask.setText(myEditText.getText().toString()); 
        } 
       }, *** new Realm.Transaction.Callback(){ 
        @Override 
        public void onSuccess() { 
         Log.d("REALM TASK", "saved successfully"); 
        } 

        @Override 
        public void onError(Exception ignore) { 
         Log.d("REALM TASK", "not saved"); 
        } 
       }; 

あるべき

   final String text = myEditText.getText().toString(); 
       realm.executeTransactionAsync(new Realm.Transaction() { 
        @Override 
        public void execute(Realm realm) { 
         Task newTask = realm.createObject(Task.class); 
         newTask.setText(text); 
        } 
       }, new Realm.Transaction.Callback() { 
        @Override 
        public void onSuccess() { 
         Log.d("REALM TASK", "saved successfully"); 
        } 

        @Override 
        public void onError(Exception e) { 
         Log.d("REALM TASK", "not saved", e); 
        } 
       }); 
関連する問題