How to convert hint property to an observed item in ViewModel
I am learning how to develop using MVVM. I created a small example, and I would like to observe the change(s) occured to hint property, so that every time the hint is changed the the corresponding callback in
VM "ViewModel" class should be called.
according to the code posted below, when i add binding to hint property, i receive the below posted error.
please let me know how to convert hint property into observable so i can observe any change occurred to the hint of the edittext.
xml
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{(chars)->LoginViewModel1.onHintChanged(chars)}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
error
Found data binding errors.
****/ data binding error ****msg:Cannot find the proper callback class for android:hint. Tried java.lang.CharSequence but it has 4 abstract methods, should have 1 abstract methods.
file:C:AndroidProjectsDesignPatternMVVM_02appsrcmainreslayoutact_main.xml
loc:22:28 - 22:72
**** data binding error ****
android mvvm
add a comment |
I am learning how to develop using MVVM. I created a small example, and I would like to observe the change(s) occured to hint property, so that every time the hint is changed the the corresponding callback in
VM "ViewModel" class should be called.
according to the code posted below, when i add binding to hint property, i receive the below posted error.
please let me know how to convert hint property into observable so i can observe any change occurred to the hint of the edittext.
xml
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{(chars)->LoginViewModel1.onHintChanged(chars)}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
error
Found data binding errors.
****/ data binding error ****msg:Cannot find the proper callback class for android:hint. Tried java.lang.CharSequence but it has 4 abstract methods, should have 1 abstract methods.
file:C:AndroidProjectsDesignPatternMVVM_02appsrcmainreslayoutact_main.xml
loc:22:28 - 22:72
**** data binding error ****
android mvvm
add a comment |
I am learning how to develop using MVVM. I created a small example, and I would like to observe the change(s) occured to hint property, so that every time the hint is changed the the corresponding callback in
VM "ViewModel" class should be called.
according to the code posted below, when i add binding to hint property, i receive the below posted error.
please let me know how to convert hint property into observable so i can observe any change occurred to the hint of the edittext.
xml
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{(chars)->LoginViewModel1.onHintChanged(chars)}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
error
Found data binding errors.
****/ data binding error ****msg:Cannot find the proper callback class for android:hint. Tried java.lang.CharSequence but it has 4 abstract methods, should have 1 abstract methods.
file:C:AndroidProjectsDesignPatternMVVM_02appsrcmainreslayoutact_main.xml
loc:22:28 - 22:72
**** data binding error ****
android mvvm
I am learning how to develop using MVVM. I created a small example, and I would like to observe the change(s) occured to hint property, so that every time the hint is changed the the corresponding callback in
VM "ViewModel" class should be called.
according to the code posted below, when i add binding to hint property, i receive the below posted error.
please let me know how to convert hint property into observable so i can observe any change occurred to the hint of the edittext.
xml
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{(chars)->LoginViewModel1.onHintChanged(chars)}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
error
Found data binding errors.
****/ data binding error ****msg:Cannot find the proper callback class for android:hint. Tried java.lang.CharSequence but it has 4 abstract methods, should have 1 abstract methods.
file:C:AndroidProjectsDesignPatternMVVM_02appsrcmainreslayoutact_main.xml
loc:22:28 - 22:72
**** data binding error ****
android mvvm
android mvvm
asked Jan 3 at 16:16
user10776303user10776303
1069
1069
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I think i found the answer to my question. setHint is neither an anonymous class nor interface unlike after TextChanged. Hence, the binding to it should be a callback that returns value. I modified the signature of the onHintChanged to be as appears below.
answer:
public String onHintChanged() {
Log.d(TAG, "onHintChanged chars: ");
return "hint changed";
}
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{LoginViewModel1.onHintChanged()}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
add a comment |
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%2f54026043%2fhow-to-convert-hint-property-to-an-observed-item-in-viewmodel%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think i found the answer to my question. setHint is neither an anonymous class nor interface unlike after TextChanged. Hence, the binding to it should be a callback that returns value. I modified the signature of the onHintChanged to be as appears below.
answer:
public String onHintChanged() {
Log.d(TAG, "onHintChanged chars: ");
return "hint changed";
}
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{LoginViewModel1.onHintChanged()}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
add a comment |
I think i found the answer to my question. setHint is neither an anonymous class nor interface unlike after TextChanged. Hence, the binding to it should be a callback that returns value. I modified the signature of the onHintChanged to be as appears below.
answer:
public String onHintChanged() {
Log.d(TAG, "onHintChanged chars: ");
return "hint changed";
}
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{LoginViewModel1.onHintChanged()}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
add a comment |
I think i found the answer to my question. setHint is neither an anonymous class nor interface unlike after TextChanged. Hence, the binding to it should be a callback that returns value. I modified the signature of the onHintChanged to be as appears below.
answer:
public String onHintChanged() {
Log.d(TAG, "onHintChanged chars: ");
return "hint changed";
}
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{LoginViewModel1.onHintChanged()}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
I think i found the answer to my question. setHint is neither an anonymous class nor interface unlike after TextChanged. Hence, the binding to it should be a callback that returns value. I modified the signature of the onHintChanged to be as appears below.
answer:
public String onHintChanged() {
Log.d(TAG, "onHintChanged chars: ");
return "hint changed";
}
android:id="@+id/actMain_LoginViewModel1_et_userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@{LoginViewModel1.onHintChanged()}"
android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"
answered Jan 4 at 7:51
user10776303user10776303
1069
1069
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%2f54026043%2fhow-to-convert-hint-property-to-an-observed-item-in-viewmodel%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