Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

findViewById called twice when using @ItemClick (and similar) on injected View #552

Description

@cosminstefanxp

When having a View injected (@ViewById) and also ataching an ItemClick Listener (@ItemClick), the findViewById method is called twice in the generated afterSetContentView_ method.

The downside is that findViewById is not a very cheap method, is it?

Example:
Class:

public class Class{
...
        @ViewById
        protected View placesList;

    @ItemClick(R.id.placesList)
    public void editPlace(Place place){}
...
}

Generated:

...
   private void afterSetContentView_() {
        placesList = ((ListView) findViewById(com.rallyberry.android.R.id.placesList));
        {
            AdapterView<?> view = ((AdapterView<?> ) findViewById(com.rallyberry.android.R.id.placesList));

...

Thanks and keep doing the great work you are doing!

Activity

  1. DayS commented on May 23, 2013

    @DayS
    Contributor

    As said in #580 this could be a good idea.
    We can (and we should) do that directly at compile time. We just need to keep ViewByIdProcessor running before all other listeners processor.

  2. DayS commented on Mar 16, 2014

    @DayS
    Contributor

    Merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions