Any way to change names for auto-created views by kotlin-extensions?










1














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>









share|improve this question


























    1














    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>









    share|improve this question
























      1












      1








      1







      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>









      share|improve this question













      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 11 at 5:31









      Sergey Shustikov

      8,55743887




      8,55743887






















          2 Answers
          2






          active

          oldest

          votes


















          1














          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







          share|improve this answer




























            0














            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.






            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%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









              1














              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







              share|improve this answer

























                1














                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







                share|improve this answer























                  1












                  1








                  1






                  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







                  share|improve this answer












                  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








                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 11 at 10:13









                  EpicPandaForce

                  47k14126245




                  47k14126245























                      0














                      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.






                      share|improve this answer

























                        0














                        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.






                        share|improve this answer























                          0












                          0








                          0






                          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.






                          share|improve this answer












                          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.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 11 at 10:18









                          Zoe

                          10.9k73675




                          10.9k73675



























                              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.





                              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.




                              draft saved


                              draft discarded














                              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





















































                              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

                              Use pre created SQLite database for Android project in kotlin

                              Darth Vader #20

                              Ondo