How to pass null argument in Android Databinding












0















Why can't pass null value? how can fix it? I can't find any hint from Document.



ERROR



****/ data binding error ****msg:cannot find method onClick(java.lang.Object, java.lang.Object) in class kr.co.app.MyActivity.MyListener file:/Users/jujaeho/projects/app/src/main/res/layout/activity_my.xml loc:24:71 - 24:106 **** data binding error ****



CODE



class MyActivity {
interface MyListener {
fun onClick(abc: ABC?, count: Int?)
}
}

<layout>
<data>
<variable
name="handler"
type="kr.co.app.MyActivity.MyListener" />
</data>
<View
...
android:onClick="@{() -> handler.onClick(null, null)}" />
</layout>









share|improve this question























  • If problem was with null handler there should be NPE. But according to posted error, problem is connected to wrong method signature of MyListener interface

    – ConstOrVar
    Nov 13 '18 at 16:59
















0















Why can't pass null value? how can fix it? I can't find any hint from Document.



ERROR



****/ data binding error ****msg:cannot find method onClick(java.lang.Object, java.lang.Object) in class kr.co.app.MyActivity.MyListener file:/Users/jujaeho/projects/app/src/main/res/layout/activity_my.xml loc:24:71 - 24:106 **** data binding error ****



CODE



class MyActivity {
interface MyListener {
fun onClick(abc: ABC?, count: Int?)
}
}

<layout>
<data>
<variable
name="handler"
type="kr.co.app.MyActivity.MyListener" />
</data>
<View
...
android:onClick="@{() -> handler.onClick(null, null)}" />
</layout>









share|improve this question























  • If problem was with null handler there should be NPE. But according to posted error, problem is connected to wrong method signature of MyListener interface

    – ConstOrVar
    Nov 13 '18 at 16:59














0












0








0


0






Why can't pass null value? how can fix it? I can't find any hint from Document.



ERROR



****/ data binding error ****msg:cannot find method onClick(java.lang.Object, java.lang.Object) in class kr.co.app.MyActivity.MyListener file:/Users/jujaeho/projects/app/src/main/res/layout/activity_my.xml loc:24:71 - 24:106 **** data binding error ****



CODE



class MyActivity {
interface MyListener {
fun onClick(abc: ABC?, count: Int?)
}
}

<layout>
<data>
<variable
name="handler"
type="kr.co.app.MyActivity.MyListener" />
</data>
<View
...
android:onClick="@{() -> handler.onClick(null, null)}" />
</layout>









share|improve this question














Why can't pass null value? how can fix it? I can't find any hint from Document.



ERROR



****/ data binding error ****msg:cannot find method onClick(java.lang.Object, java.lang.Object) in class kr.co.app.MyActivity.MyListener file:/Users/jujaeho/projects/app/src/main/res/layout/activity_my.xml loc:24:71 - 24:106 **** data binding error ****



CODE



class MyActivity {
interface MyListener {
fun onClick(abc: ABC?, count: Int?)
}
}

<layout>
<data>
<variable
name="handler"
type="kr.co.app.MyActivity.MyListener" />
</data>
<View
...
android:onClick="@{() -> handler.onClick(null, null)}" />
</layout>






android-databinding






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 11:58









illusionJJillusionJJ

123415




123415













  • If problem was with null handler there should be NPE. But according to posted error, problem is connected to wrong method signature of MyListener interface

    – ConstOrVar
    Nov 13 '18 at 16:59



















  • If problem was with null handler there should be NPE. But according to posted error, problem is connected to wrong method signature of MyListener interface

    – ConstOrVar
    Nov 13 '18 at 16:59

















If problem was with null handler there should be NPE. But according to posted error, problem is connected to wrong method signature of MyListener interface

– ConstOrVar
Nov 13 '18 at 16:59





If problem was with null handler there should be NPE. But according to posted error, problem is connected to wrong method signature of MyListener interface

– ConstOrVar
Nov 13 '18 at 16:59












2 Answers
2






active

oldest

votes


















0














if you are intending to pass null why cannot you assign default value for your onClick method



class MyActivity {
interface MyListener {
fun onClick(abc: ABC?=null, count: Int?=null)
}
}


you can pass nothing if you want to pass null






share|improve this answer
























  • I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

    – illusionJJ
    Nov 18 '18 at 9:00











  • but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

    – ABr
    Nov 21 '18 at 6:44



















0














I just encountered this problem today, and what I did basically was to cast the null parameters to the types expected in the method parameters. In your case, this should be something like:



<layout>
<data>
<import type="ABC" /> // just an illustration, specify the full package
<variable
name="handler"
type="kr.co.app.MyActivity.MyListener" />
</data>
<View
...
android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
</layout>


I am not sure about the int casting, but you can try it or use the Integer wrapper class for casting.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280572%2fhow-to-pass-null-argument-in-android-databinding%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    if you are intending to pass null why cannot you assign default value for your onClick method



    class MyActivity {
    interface MyListener {
    fun onClick(abc: ABC?=null, count: Int?=null)
    }
    }


    you can pass nothing if you want to pass null






    share|improve this answer
























    • I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

      – illusionJJ
      Nov 18 '18 at 9:00











    • but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

      – ABr
      Nov 21 '18 at 6:44
















    0














    if you are intending to pass null why cannot you assign default value for your onClick method



    class MyActivity {
    interface MyListener {
    fun onClick(abc: ABC?=null, count: Int?=null)
    }
    }


    you can pass nothing if you want to pass null






    share|improve this answer
























    • I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

      – illusionJJ
      Nov 18 '18 at 9:00











    • but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

      – ABr
      Nov 21 '18 at 6:44














    0












    0








    0







    if you are intending to pass null why cannot you assign default value for your onClick method



    class MyActivity {
    interface MyListener {
    fun onClick(abc: ABC?=null, count: Int?=null)
    }
    }


    you can pass nothing if you want to pass null






    share|improve this answer













    if you are intending to pass null why cannot you assign default value for your onClick method



    class MyActivity {
    interface MyListener {
    fun onClick(abc: ABC?=null, count: Int?=null)
    }
    }


    you can pass nothing if you want to pass null







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 16 '18 at 10:28









    ABrABr

    20017




    20017













    • I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

      – illusionJJ
      Nov 18 '18 at 9:00











    • but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

      – ABr
      Nov 21 '18 at 6:44



















    • I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

      – illusionJJ
      Nov 18 '18 at 9:00











    • but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

      – ABr
      Nov 21 '18 at 6:44

















    I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

    – illusionJJ
    Nov 18 '18 at 9:00





    I think android databinding under the Java. So handling default value is some difficult. while we can type @JvmOverloads above the method, but this is not allowed in interface.

    – illusionJJ
    Nov 18 '18 at 9:00













    but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

    – ABr
    Nov 21 '18 at 6:44





    but i am able to pass null to my parameters inside interface. The only difference is that it's a separate file not with inside activity

    – ABr
    Nov 21 '18 at 6:44













    0














    I just encountered this problem today, and what I did basically was to cast the null parameters to the types expected in the method parameters. In your case, this should be something like:



    <layout>
    <data>
    <import type="ABC" /> // just an illustration, specify the full package
    <variable
    name="handler"
    type="kr.co.app.MyActivity.MyListener" />
    </data>
    <View
    ...
    android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
    </layout>


    I am not sure about the int casting, but you can try it or use the Integer wrapper class for casting.






    share|improve this answer




























      0














      I just encountered this problem today, and what I did basically was to cast the null parameters to the types expected in the method parameters. In your case, this should be something like:



      <layout>
      <data>
      <import type="ABC" /> // just an illustration, specify the full package
      <variable
      name="handler"
      type="kr.co.app.MyActivity.MyListener" />
      </data>
      <View
      ...
      android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
      </layout>


      I am not sure about the int casting, but you can try it or use the Integer wrapper class for casting.






      share|improve this answer


























        0












        0








        0







        I just encountered this problem today, and what I did basically was to cast the null parameters to the types expected in the method parameters. In your case, this should be something like:



        <layout>
        <data>
        <import type="ABC" /> // just an illustration, specify the full package
        <variable
        name="handler"
        type="kr.co.app.MyActivity.MyListener" />
        </data>
        <View
        ...
        android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
        </layout>


        I am not sure about the int casting, but you can try it or use the Integer wrapper class for casting.






        share|improve this answer













        I just encountered this problem today, and what I did basically was to cast the null parameters to the types expected in the method parameters. In your case, this should be something like:



        <layout>
        <data>
        <import type="ABC" /> // just an illustration, specify the full package
        <variable
        name="handler"
        type="kr.co.app.MyActivity.MyListener" />
        </data>
        <View
        ...
        android:onClick="@{() -> handler.onClick((ABC) null, (int) null)}" />
        </layout>


        I am not sure about the int casting, but you can try it or use the Integer wrapper class for casting.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 5 at 19:11









        idrisadetunmbiidrisadetunmbi

        386




        386






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280572%2fhow-to-pass-null-argument-in-android-databinding%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Florida Star v. B. J. F.

            Danny Elfman

            Lugert, Oklahoma