什么是#34;内置TextView小部件android:text1" " ListView小部件android:id / list"?

时间:2014-05-28 01:49:55

标签: android

Android教程指南使用以下XML定义和引号:

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@android:id/list"
  android:layout_width="match_parent"
  android:layout_height="match_parent"/>
  

此XML使用内置的Android ListView小部件android:id / list。

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@android:id/text1"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:clickable="true />
  

此XML使用内置的Android TextView小部件android:text1。

首先,我习惯看到这样定义的id属性:

android:id="@+id/list1"

使用@android:id/list代替什么意思?

其次,built-in ... widget在这种情况下意味着什么?

3 个答案:

答案 0 :(得分:2)

这些是Android SDK中定义的ID,用于Android SDK提供的某些布局XML文件中。您可以直接引用XML中的那些ID(例如android:id="@android:id/text1")或Java(例如findViewById(android.R.id.text1) - 注意java中的完全限定名称。

其中一些ID在某些情况下具有特殊含义。例如,如果要扩展ListActivityListFragment,则必须使用android:id="@android:id/list",因为这些类会查找具有该特定ID的ListView作为其实现的一部分。 (如果您根本不提供布局,那么这些类默认为只包含ListView的布局。)

请注意,您仍然可以在这些特殊情况之外使用这些ID - 没有什么可以阻止您提供任何视图android:id="@android:id/list"

答案 1 :(得分:0)

内置...小部件意味着您不需要项目中的任何特殊库来使用此小部件(它已经内置在android sdk中)。

答案 2 :(得分:0)

Android默认文本视图适用于您不希望用户定义的文本视图具有与您可以使用的属性不同的属性。它给出了简单和最好的表示 我有一个可扩展列表视图,而不是仅为文本视图定义不同的资源文件我总是使用默认文本视图。

这里我给出了一些我更喜欢使用的默认视图:

默认文本视图:findViewById(android.R.id.text1); ListIteam文本视图:(android.R.layout.simple_list_item_1); 可扩展的ListIteam文本视图:(android.R.layout.simple_expandable_list_item_2,null)