What is "android.R.id.text1"?
I am new to Android development. In the Notepad sample, I saw the following code snippet:
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.noteslist_item, cursor,
new String[] { Notes.TITLE }, new int[] { android.R.id.text1 });
and in the notelist_item.xml
file:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1" <-----------HERE
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="5dip"
android:singleLine="true"
/>
So, I am wondering, what is this android.R.id.text1
?
Also, I found android.R.id.button1
, button2
, button3
in the android.jar
file.
Are they some kind of well known IDs for some 3rd party controls?
Thanks
android.R.id.text1
is just an identifier defined in the Android framework.
In the framework, android.R.id.text1
is an used for TextView
views. You can find it in many layouts from the framework (select_dialog_item
, select_dialog_singlechoice
, simple_dropdown_item_1line
, etc.). In Android framework xml, it is represented by @+id/text1
.
Hence, if you use one of these layouts and want to change the text, you will need to use this id.
// probably in a custom ListAdapter that uses
View view = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
TextView textView = (textView) view.findViewById(android.R.id.text1);
textView.setText("Oh no! not hello world again");
Also, you can use this same identifier to identify a TextView
(or anything) in your custom layouts. See in the sample "Notepad", the layout file noteslist_item.xml
.
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="5dip"
android:singleLine="true"
/>
And actually, you could use R.id.text1
as an identifier of anything else, but that would be confusing.
It's a build-in layout (android.R.layout.simple_list_item_1
) view id used for default lists etc.
android.R.id.text1 is a TextView in layout (android.R.layout.simple_list_item_1) you can see this in
(path to ur Android SDK)\platforms\android-\data\res\layout
folder
android.R.id.text1 is the id of the TextView defined in the android's predefined layout android.layout.simple_list_item1. so it is just like give an id which is already described rather than giving a new id.
android.R.id.text1 is the id of TextView which is defined in notelist_item.xml. You can find and use the widget by its id.