Can somebody in plain words explain me the usage of getViewTypeCount() and getItemViewType() methods of ArrayAdapter?
Can somebody in plain words explain me the usage of getViewTypeCount() and getItemViewType() methods
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
These handle the case where you want different types of view for different rows. For instance, in a contacts application you may want even rows to have pictures on the left side and odd rows to have pictures on the right. In that case, you would use:
The framework uses your view type to decide which views to hand you via
convertViewin yourgetViewmethod. In other words, in the above example, your even rows will only get recycled views with pictures on the left side to reuse, and odd rows will only get ones with pictures on the right.If every row in your list has the same layout, you don’t need to worry about view types. In fact, BaseAdapter.java provides a default behavior for all adapters:
This indeed provides you with the same view type for every row.
Edit – to outline the general flow:
AdapterViewusing an adapter.AdapterViewtries to display items that are visible to the user.getItemViewTypefor rown, the row it is about to display.n‘s type. It doesn’t find any because no views have been recycled yet.getViewis called for rown.getItemViewTypefor rownto determine what type of view you should use.getView, and your row’s view is displayed to the user.Now, when a view is recycled by scrolling off the screen it goes into a recycled views pool that is managed by the framework. These are essentially organized by view type so that a view of the correct type is given to you in
convertViewparameter in yourgetViewmethod:getItemViewTypefor the row it wants to display.convertViewparameter to yourgetViewmethod.