什么是“ android.R.layout.simple_list_item_1”?


229

我已经开始学习Android开发,并且正在关注一本书中的todolist示例:

// Create the array list of to do items
final ArrayList<String> todoItems = new ArrayList<String>();

// Create the array adapter to bind the array to the listView
final ArrayAdapter<String> aa;
aa = new ArrayAdapter<String>(  this, 
                                android.R.layout.simple_list_item_1,
                                todoItems
                            );
myListView.setAdapter(aa);

我无法完全理解此代码,尤其是以下代码行:

android.R.layout.simple_list_item_1

但是为什么是一个参数呢?我只是想用我的数组更新我的列表视图,答案之一显示了这一点。我不确定为什么需要这个...这是我的问题。谢谢!stackoverflow.com/questions/35098789/...
Ruchir Baronia酒店

Answers:


259

Zakaria,是对内置XML布局文档的引用,该文档是Android OS的一部分,而不是您自己的XML布局之一。

这是您可以使用的其他布局列表:http : //developer.android.com/reference/android/R.layout.html
(更新的链接,感谢@Estel:https : //github.com/android/platform_frameworks_base/树/主/核心/分辨率/分辨率/布局

您实际上可以查看布局的代码。


15
布局也位于您的SDK安装中
CommonsWare,2010年

10
嘿,他们也是。:P我曾经尝试通过在Eclipse中浏览android jar来寻找它们,它只是告诉我“未找到源”。但是,是的,它们位于平台> android-x>数据> res>布局下。好决定。:)
凯文·科波克

8
它告诉listview各个行使用什么布局。还有其他一些带有checkedtextviews的选项,您可以进行自定义布局,包括图像和多个textviews。这些android.R只是一些易于使用且已为您创建的资源。
凯文·科波克

30
谢谢!哇,布局很多。所有Android参考似乎都揭示了它们(在R.layout.html中)是每个id的常量值。可能有任何文档用示例用例来说明每个文档吗?(例如,“布局X看起来像这样[图与现场IDS。它是最好的情况下使用A,B和C,它可以在应用程序Y.行动中可以看出”)是的,这伟大的,知道我可以掠夺金库并自行破解所有内容,但是可扫描的插图列表(相对于XML)将有很大帮助!
Joe D'Andrea

12
这似乎是Google的典型做法。他们发布了所有出色的技术,并拥有IBM的所有文档编制技能。
AngryITguy 2011年

35

这是android操作系统的一部分。这是定义的XML文件的实际版本。

simple_list_item_1:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/listItemFirstLineStyle"
    android:paddingTop="2dip"
    android:paddingBottom="3dip"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

simple_list_item_2:

<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingTop="2dip"
    android:paddingBottom="2dip"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView android:id="@android:id/text1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="?android:attr/listItemFirstLineStyle"/>

    <TextView android:id="@android:id/text2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@android:id/text1"
        style="?android:attr/listItemSecondLineStyle" />

</TwoLineListItem> 


9

如Klap所述,“ android.R.layout.simple_list_item_1是对内置XML布局文档的引用,该文档是Android OS的一部分。”
所有布局均位于:sdk \ platforms \ android-xx \ data \ res \ layout
要查看layout 的XML:
Eclipse:只需在代码中的某个位置键入android.R.layout.simple_list_item_1,按住Ctrl,将鼠标悬停在simple_list_item_1上,然后从出现的下拉列表中选择“在layout / simple_list_item_1.xml中打开声明”。它会将您定向到XML的内容。
Android Studio:项目窗口->外部库-> Android X平台-> res->布局,在这里您将看到可用布局的列表。
在此处输入图片说明


7

android.R.layout.simple_list_item_1,这是res / layout文件夹中的行布局文件,其中包含的相应行设计listview。现在,我们使用mylistview.setadapter(aa);将数组列表项绑定到行布局。


5

无需访问外部链接,所需的一切都已经位于您的计算机上:

Android \ android-sdk \ platforms \ android-x \ data \ res \ layout。

所有android布局的源代码都位于此处。


4

按Arvand:
Eclipse:只需在代码中的某个位置键入android.R.layout.simple_list_item_1,按住Ctrl键,将鼠标悬停在simple_list_item_1上,然后从出现的下拉列表中选择layout / simple_list_item_1.xml中的Open声明。它会将您定向到XML的内容。

从那里开始,如果您将鼠标悬停在编辑器中生成的simple_list_item_1.xml选项卡上,则会看到文件位于C:\ Data \ applications \ Android \ android-sdk \ platforms \ android-19 \ data \ res \ layout \ simple_list_item_1.xml(或安装的等效位置)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.