Any way to change names for auto-created views by kotlin-extensions?
I'm new in Kotlin. I've red https://kotlinlang.org/docs/tutorials/android-plugin.html and noticed that views can be auto-binded to activity via importing kotlinx.android.synthetic.main.activity_main.*.
If I declaring view with id = "btn_login" in Activity I can access to it via
activity.btn_login.setText("Login")
But. Is there any way to change alias to view, such as ButterKnife does :
@BindView(<id of view>)
<name of view></k>
android kotlin
add a comment |
I'm new in Kotlin. I've red https://kotlinlang.org/docs/tutorials/android-plugin.html and noticed that views can be auto-binded to activity via importing kotlinx.android.synthetic.main.activity_main.*.
If I declaring view with id = "btn_login" in Activity I can access to it via
activity.btn_login.setText("Login")
But. Is there any way to change alias to view, such as ButterKnife does :
@BindView(<id of view>)
<name of view></k>
android kotlin
add a comment |
I'm new in Kotlin. I've red https://kotlinlang.org/docs/tutorials/android-plugin.html and noticed that views can be auto-binded to activity via importing kotlinx.android.synthetic.main.activity_main.*.
If I declaring view with id = "btn_login" in Activity I can access to it via
activity.btn_login.setText("Login")
But. Is there any way to change alias to view, such as ButterKnife does :
@BindView(<id of view>)
<name of view></k>
android kotlin
I'm new in Kotlin. I've red https://kotlinlang.org/docs/tutorials/android-plugin.html and noticed that views can be auto-binded to activity via importing kotlinx.android.synthetic.main.activity_main.*.
If I declaring view with id = "btn_login" in Activity I can access to it via
activity.btn_login.setText("Login")
But. Is there any way to change alias to view, such as ButterKnife does :
@BindView(<id of view>)
<name of view></k>
android kotlin
android kotlin
asked Nov 11 at 5:31
Sergey Shustikov
8,55743887
8,55743887
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
It's a synthetic import, so technically you can use an import alias to call it by another name:
import kotlinx.android.synthetic.main.activity_main.view.btn_login as btnLogin
But considering there is no tool that does this automatically, you might want to just embrace a different ID naming scheme.
Here's a reasonable one:
What-Where-Description-Modifier:
recyclerSearchSuggestions
- RecyclerView showing search suggestions
fabSearchGo
- FloatingActionButton that executes a search
textSearchFilterChip
- TextView that represents search filters, styled as a material chip
buttonSearchClearFilter
- Button that clears selected filter chips
editSearchFilter
- EditText used to narrow down search suggestions
add a comment |
The only way you can, as far as I know, is by using named imports. This is a really nice feature of the Kotlin language, that Java doesn't support. Unfortunately, this requires manually setting it for those you want to replace, so it can be slightly boilerplate.
But you can change your import to:
import kotlinx.android...your_view as yourView
This applies to any and all imports, and any types too. It could be done with classes, methods, constants... Whatever you feel like.
Although if you can access the XML files, I recommend you just change the IDs in there. There's no reason not to use camelCase anyways, and it's slightly easier than using as customName
in every import.
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%2f53246114%2fany-way-to-change-names-for-auto-created-views-by-kotlin-extensions%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
It's a synthetic import, so technically you can use an import alias to call it by another name:
import kotlinx.android.synthetic.main.activity_main.view.btn_login as btnLogin
But considering there is no tool that does this automatically, you might want to just embrace a different ID naming scheme.
Here's a reasonable one:
What-Where-Description-Modifier:
recyclerSearchSuggestions
- RecyclerView showing search suggestions
fabSearchGo
- FloatingActionButton that executes a search
textSearchFilterChip
- TextView that represents search filters, styled as a material chip
buttonSearchClearFilter
- Button that clears selected filter chips
editSearchFilter
- EditText used to narrow down search suggestions
add a comment |
It's a synthetic import, so technically you can use an import alias to call it by another name:
import kotlinx.android.synthetic.main.activity_main.view.btn_login as btnLogin
But considering there is no tool that does this automatically, you might want to just embrace a different ID naming scheme.
Here's a reasonable one:
What-Where-Description-Modifier:
recyclerSearchSuggestions
- RecyclerView showing search suggestions
fabSearchGo
- FloatingActionButton that executes a search
textSearchFilterChip
- TextView that represents search filters, styled as a material chip
buttonSearchClearFilter
- Button that clears selected filter chips
editSearchFilter
- EditText used to narrow down search suggestions
add a comment |
It's a synthetic import, so technically you can use an import alias to call it by another name:
import kotlinx.android.synthetic.main.activity_main.view.btn_login as btnLogin
But considering there is no tool that does this automatically, you might want to just embrace a different ID naming scheme.
Here's a reasonable one:
What-Where-Description-Modifier:
recyclerSearchSuggestions
- RecyclerView showing search suggestions
fabSearchGo
- FloatingActionButton that executes a search
textSearchFilterChip
- TextView that represents search filters, styled as a material chip
buttonSearchClearFilter
- Button that clears selected filter chips
editSearchFilter
- EditText used to narrow down search suggestions
It's a synthetic import, so technically you can use an import alias to call it by another name:
import kotlinx.android.synthetic.main.activity_main.view.btn_login as btnLogin
But considering there is no tool that does this automatically, you might want to just embrace a different ID naming scheme.
Here's a reasonable one:
What-Where-Description-Modifier:
recyclerSearchSuggestions
- RecyclerView showing search suggestions
fabSearchGo
- FloatingActionButton that executes a search
textSearchFilterChip
- TextView that represents search filters, styled as a material chip
buttonSearchClearFilter
- Button that clears selected filter chips
editSearchFilter
- EditText used to narrow down search suggestions
answered Nov 11 at 10:13
EpicPandaForce
47k14126245
47k14126245
add a comment |
add a comment |
The only way you can, as far as I know, is by using named imports. This is a really nice feature of the Kotlin language, that Java doesn't support. Unfortunately, this requires manually setting it for those you want to replace, so it can be slightly boilerplate.
But you can change your import to:
import kotlinx.android...your_view as yourView
This applies to any and all imports, and any types too. It could be done with classes, methods, constants... Whatever you feel like.
Although if you can access the XML files, I recommend you just change the IDs in there. There's no reason not to use camelCase anyways, and it's slightly easier than using as customName
in every import.
add a comment |
The only way you can, as far as I know, is by using named imports. This is a really nice feature of the Kotlin language, that Java doesn't support. Unfortunately, this requires manually setting it for those you want to replace, so it can be slightly boilerplate.
But you can change your import to:
import kotlinx.android...your_view as yourView
This applies to any and all imports, and any types too. It could be done with classes, methods, constants... Whatever you feel like.
Although if you can access the XML files, I recommend you just change the IDs in there. There's no reason not to use camelCase anyways, and it's slightly easier than using as customName
in every import.
add a comment |
The only way you can, as far as I know, is by using named imports. This is a really nice feature of the Kotlin language, that Java doesn't support. Unfortunately, this requires manually setting it for those you want to replace, so it can be slightly boilerplate.
But you can change your import to:
import kotlinx.android...your_view as yourView
This applies to any and all imports, and any types too. It could be done with classes, methods, constants... Whatever you feel like.
Although if you can access the XML files, I recommend you just change the IDs in there. There's no reason not to use camelCase anyways, and it's slightly easier than using as customName
in every import.
The only way you can, as far as I know, is by using named imports. This is a really nice feature of the Kotlin language, that Java doesn't support. Unfortunately, this requires manually setting it for those you want to replace, so it can be slightly boilerplate.
But you can change your import to:
import kotlinx.android...your_view as yourView
This applies to any and all imports, and any types too. It could be done with classes, methods, constants... Whatever you feel like.
Although if you can access the XML files, I recommend you just change the IDs in there. There's no reason not to use camelCase anyways, and it's slightly easier than using as customName
in every import.
answered Nov 11 at 10:18
Zoe
10.9k73675
10.9k73675
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53246114%2fany-way-to-change-names-for-auto-created-views-by-kotlin-extensions%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