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?
R is a class containing the definitions for all resources of a particular application package. It is in the namespace of the application package. For example, if you say in your manifest your package name is com. foo. bar , an R class is generated with the symbols of all your resources in com.
EditText is used for user input. TextView is used to display text and is not editable by the user. TextView can be updated programatically at any time.
android.R
is meant for utilizing resources built in to the operating system.
There are many images/layouts/etc... that come with the operating system that you can just reference using android.R
if you are referencing your own resources that you have created, most always use R.
and in most situations I recommend trying to stay away from the built in resources as they change version to version.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With