When I started developping android applications, I had a tendency to define custom R values wherever I need, in particular in layout files. For instance:
findViewById(R.id.customerName).setText(customer.getName())
with layout:
<TextView android:text="TextView" android:id="@id/customerName"
android:layout_height="wrap_content" android:layout_width="fill_parent" />
Now I realize, it might be better to use android.R
instead.
findViewById(android.R.id.text1).setText(customer.getName())
with layout:
<TextView android:text="TextView" android:id="@android:id/text1"
android:layout_height="wrap_content" android:layout_width="fill_parent" />
What practice do you follow? What are the advantages and disadvantages of each?
There is no big advantage or disadvantage of the framework id vs the custom id in layouts.
Advantages of using framework identifiers:
ListActivity
Drawbacks of using framework identifiers:
In both practices
I thought the the samples in the SDK would help me take a decision, and (guess what?) it doesn't. The Notepad and LunarLander applications use the android.R.id
for the view identifiers, whereas the ApiDemos project uses custom identifiers.
Best practice for GestureBuilder which mixes both approaches? (@+id/addButton
and @android:id/empty
)
IHMO, worse practice for HelloActivity and JetBoy which define @+id/text
@+id/Button01
... This is not descriptive and could have been replaced by (@andoid:id/button1
, or by @+id/startButton
)