How to pass null argument in Android Databinding
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
add a comment |
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
If problem was withnull
handler there should be NPE. But according to posted error, problem is connected to wrong method signature ofMyListener
interface
– ConstOrVar
Nov 13 '18 at 16:59
add a comment |
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
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
android-databinding
asked Nov 13 '18 at 11:58
illusionJJillusionJJ
123415
123415
If problem was withnull
handler there should be NPE. But according to posted error, problem is connected to wrong method signature ofMyListener
interface
– ConstOrVar
Nov 13 '18 at 16:59
add a comment |
If problem was withnull
handler there should be NPE. But according to posted error, problem is connected to wrong method signature ofMyListener
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
add a comment |
2 Answers
2
active
oldest
votes
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
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
add a comment |
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
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
add a comment |
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
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
add a comment |
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
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
answered Nov 16 '18 at 10:28
ABrABr
22527
22527
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
add a comment |
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
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered Jan 5 at 19:11
idrisadetunmbiidrisadetunmbi
386
386
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
If problem was with
null
handler there should be NPE. But according to posted error, problem is connected to wrong method signature ofMyListener
interface– ConstOrVar
Nov 13 '18 at 16:59