How does android use R.id.id_name
to find views after inflating the XML?
1.Suppose I have two XML\'s with one button each with same id.
2.I have
The ID is not a unique reference.
However, in practice, you differentiate by using the parent view.
If we consider that 'this' is an Activity, set up with a layout that contains your buttons, then:
Button button = (Button) this.findViewById( R.id.id_name );
will return the first one it finds in the layout (I think - not sure the actual behaviour is defined).
However what you might do is call findViewById
on some parent view that contains only one such instance with that ID.
LinearLayout okParent = (LinearLayout) this.findViewById( R.id.okLayout );
LinearLayout cancelParent = (LinearLayout) this.findViewById( R.id.cancelLayout );
Button okButton = (Button) okParent.findViewById( R.id.id_name );
Button cancelButton = (Button) cancelParent.findViewById( R.id.id_name );
Conceptually, this is a sort of path based lookup. You should be careful to design your layouts such that this is possible.