什么是"android.R.id.text1"?

smw*_*dia 44 android

我是Android开发的新手.在Notepad示例中,我看到了以下代码段:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.noteslist_item, cursor,
        new String[] { Notes.TITLE }, new int[] { android.R.id.text1 });
Run Code Online (Sandbox Code Playgroud)

并在notelist_item.xml文件中:

<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"
/>
Run Code Online (Sandbox Code Playgroud)

所以,我想知道,这是android.R.id.text1什么?

另外,我发现android.R.id.button1,button2,button3将在android.jar文件中.

它们是某些第三方控件的某种众所周知的ID吗?

谢谢

rds*_*rds 35

在Android Java框架中,android.R.id.text1是一个标识符TextView.您可以从框架许多布局(找到它select_dialog_item,select_dialog_singlechoice,simple_dropdown_item_1line等).在Android框架xml中,它由表示@+id/text1

因此,如果您使用其中一个布局并想要更改文本,则需要使用此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");
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用相同的标识符来标识TextView自定义布局中的(或任何内容,但这会产生误导).请参阅示例"记事本"中的布局文件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"  
/>
Run Code Online (Sandbox Code Playgroud)


小智 5

它是一个内置布局 ( android.R.layout.simple_list_item_1) 视图 ID,用于默认列表等。