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.