What is the main purpose of setTag() getTag() methods of View?
android, android-view, android-viewholder, view
Solution
Let's say you generate a bunch of views that are similar. You could set an `OnClickListener` for each view individually:
button1.setOnClickListener(new OnClickListener ... );
button2.setOnClickListener(new OnClickListener ... );
...
Then you have to create a unique `onClick` method for each view even if they do the similar things, like:
public void onClick(View v) {
doAction(1); // 1 for button1, 2 for button2, etc.
}
This is because `onClick` has only one parameter, a `View`, and it has to get other information from instance variables or final local variables in enclosing scopes. What we really want is to get information from the views themselves.
Enter `getTag`/`setTag`:
button1.setTag(1);
button2.setTag(2);
Now we can use the same OnClickListener for every button:
listener = new OnClickListener() {
@Override
public void onClick(View v) {
doAction(v.getTag());
}
};
It's basically a way for views to have memories.
Problem
What is the main purpose of such methods as `setTag()` and `getTag()` of `View` type objects? Am I right in thinking that I can associate any number of objects with a single View?