0

Now I'm trying to change DB Shared Pref to SqlLite and I'm testing SqlLite DB.

TodoList Info will stored in SqlLite DB.

So, the model of Todo List is as below.

     class TodoModel {
      int dateTime;
      String todo;
      int isDone;
    
      todoModelMap() {
        var mapping =  Map<String, dynamic>();
        mapping['dateTime'] = this.dateTime;
        mapping['todo'] = this.todo;
        mapping['isDone'] = this.isDone;
    
        return mapping;
      }
    }

The problem is I tried to store model in todoList Provider File but compiler calls error dateTime is null

addTodoList(DateTime dateTime, TextEditingController eventController) async {
    
        if(eventController.text.isEmpty) { return; }
        else {
          if (events[dateTime] != null) {

            ----------------------------------------------------
            todoModel.dateTime = dateTime.millisecondsSinceEpoch;
            // I used milisecondsSinceEpoch to save DateTime as int.
            todoModel.todo = eventController.text;
            todoModel.isDone = 0;
            var result = await todoService.saveTodo(todoModel);
            print(result);
            ---------------------------------------------------
    
            events[dateTime].add(toMap(eventController));
          } else {
            events[dateTime] = [toMap(eventController)];
          }
    
          eventController.clear();
          save();
          eventController.clear();
          notifyListeners();
        }
      }

I cannot find why dateTime is null because over here the dateTime as int printed well..

onPressed: (){
                    print(controller.selectedDay.millisecondsSinceEpoch);
                    todoListHandler.addTodoList(controller.selectedDay, eventController);
                    Navigator.pop(context);
                  },
                )

++ I want to know solution of this error

W/System.err(16005): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.ClipData.getItemCount()' on a null object reference

this error occur when the raisedButton is onPressed. but there is no problem to store data

// Here is my full error code

    W/System.err(16005): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.ClipData.getItemCount()' on a null object reference
    W/System.err(16005):    at android.os.Parcel.readException(Parcel.java:1626)
    W/System.err(16005):    at android.os.Parcel.readException(Parcel.java:1573)
    W/System.err(16005):    at android.content.IClipboard$Stub$Proxy.getPrimaryClip(IClipboard.java:197)
    W/System.err(16005):    at android.content.ClipboardManager.getPrimaryClip(ClipboardManager.java:247)
    W/System.err(16005):    at io.flutter.plugin.platform.PlatformPlugin.getClipboardData(PlatformPlugin.java:274)
    W/System.err(16005):    at io.flutter.plugin.platform.PlatformPlugin.access$700(PlatformPlugin.java:24)
    W/System.err(16005):    at io.flutter.plugin.platform.PlatformPlugin$1.getClipboardData(PlatformPlugin.java:81)
    W/System.err(16005):    at io.flutter.embedding.engine.systemchannels.PlatformChannel$1.onMethodCall(PlatformChannel.java:141)
    W/System.err(16005):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
    W/System.err(16005):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
    W/System.err(16005):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
    W/System.err(16005):    at android.os.MessageQueue.nativePollOnce(Native Method)
    W/System.err(16005):    at android.os.MessageQueue.next(MessageQueue.java:323)
    W/System.err(16005):    at android.os.Looper.loop(Looper.java:143)
    W/System.err(16005):    at android.app.ActivityThread.main(ActivityThread.java:7225)
    W/System.err(16005):    at java.lang.reflect.Method.invoke(Native Method)
    W/System.err(16005):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    W/System.err(16005):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
    D/ViewRootImpl(16005): ViewPostImeInputStage processPointer 0
    D/ViewRootImpl(16005): ViewPostImeInputStage processPointer 1
    I/flutter (16005): 1601380800000
    E/flutter (16005): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The setter 'dateTime=' was called on null.
    E/flutter (16005): Receiver: null
    E/flutter (16005): Tried calling: dateTime=1601380800000
    E/flutter (16005): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
    E/flutter (16005): #1      TodoListHandler.addTodoList (package:take_a_note_project/todoList/todoList_handler.dart:57:19)
    E/flutter (16005): #2      _TodoListState._showAddDialog.<anonymous closure>.<anonymous closure> (package:take_a_note_project/todoList/todoList.dart:134:33)
    E/flutter (16005): #3      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:992:19)
    E/flutter (16005): #4      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1098:38)
    E/flutter (16005): #5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
    E/flutter (16005): #6      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:524:11)
    E/flutter (16005): #7      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
    E/flutter (16005): #8      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:219:7)
    E/flutter (16005): #9      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:477:9)
    E/flutter (16005): #10     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:78:12)
    E/flutter (16005): #11     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:124:9)
    E/flutter (16005): #12     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
    E/flutter (16005): #13     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:122:18)
    E/flutter (16005): #14     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:108:7)
    E/flutter (16005): #15     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:220:19)
    E/flutter (16005): #16     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
    E/flutter (16005): #17     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
    E/flutter (16005): #18     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
    E/flutter (16005): #19     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
    E/flutter (16005): #20     _rootRunUnary (dart:async/zone.dart:1206:13)
    E/flutter (16005): #21     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
    E/flutter (16005): #22     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
    E/flutter (16005): #23     _invoke1 (dart:ui/hooks.dart:267:10)
    E/flutter (16005): #24     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)
Nate Yeum
  • 161
  • 1
  • 9
  • Does this answer your question? [What is a NoSuchMethod error and how do I fix it?](https://stackoverflow.com/questions/64049102/what-is-a-nosuchmethod-error-and-how-do-i-fix-it) – nvoigt Sep 28 '20 at 06:55

1 Answers1

1

You have to make the object of TodoModel first because without creating of object it is null and then also you are trying to assign it. then you can give the value of it.

TodoModel _todoModel=new TodoModel();
_todoModel.dateTime = dateTime.millisecondsSinceEpoch;
_todoModel.todo = eventController.text;
_todoModel.isDone = 0;
var result = await todoService.saveTodo(_todoModel);

For your second error of java.lang.NullPointerException you can refer this https://github.com/flutter/flutter/issues/24757

Christopher Moore
  • 15,626
  • 10
  • 42
  • 52
Abhishek Ghaskata
  • 1,802
  • 2
  • 6
  • 11
  • use “new” keyword in 2020 is moveton –  Sep 27 '20 at 18:07
  • Thank you for your help! But I already make object in constructor... like this.. _todoModel = new TodoModel().. In this case.. May I ask you one more time why this error occurs? – Nate Yeum Sep 27 '20 at 18:07
  • 1
    you are making the only constructor and the constructor is called when you will make a new object. – Abhishek Ghaskata Sep 27 '20 at 18:14