Android android.R.layout.simple_list_item_1 là gì?


229

Tôi đã bắt đầu học phát triển Android và đang theo một ví dụ điển hình từ một cuốn sách:

// 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);

Tôi không thể hiểu chính xác mã này, đặc biệt là dòng này:

android.R.layout.simple_list_item_1

Nhưng tại sao đó là một tham số? Tôi chỉ muốn cập nhật listview của tôi với mảng của tôi, và một trong những câu trả lời cho thấy điều này. Tôi không chắc tại sao tôi cần điều này ... Đây là câu hỏi của tôi. Cảm ơn! stackoverflow.com/questions/35098789/
Mạnh

Câu trả lời:


259

Zakaria, đó là một tham chiếu đến một tài liệu bố cục XML tích hợp, là một phần của HĐH Android, chứ không phải là một trong các bố cục XML của riêng bạn.

Dưới đây là danh sách các bố cục khác mà bạn có thể sử dụng: http://developer.android.com/reference/android/R.layout.html
(Liên kết được cập nhật cảm ơn @Estel: https://github.com/android/pl platform_frameworks_base / cây / chủ / lõi / res / res / layout )

Bạn thực sự có thể xem mã cho các bố trí.


15
Các bố cục cũng nằm trong cài đặt SDK của bạn
CommonsWare

10
Heh, vì vậy họ là. : P Tôi đã cố gắng tìm kiếm chúng trước đây chỉ bằng cách duyệt qua Android jar trong Eclipse và nó chỉ cho tôi biết "Không tìm thấy nguồn". Nhưng vâng, chúng nằm dưới các nền tảng> android-x> data> res> layout. Cuộc gọi tốt :)
Kevin Coppock

8
Nó cho biết listview sử dụng bố cục nào cho các hàng riêng lẻ. Có những cái khác với các bản xem trước được kiểm tra cho nhiều lựa chọn, bạn có thể tạo bố cục tùy chỉnh bao gồm hình ảnh và nhiều bản xem xét chẳng hạn. Những cái android.R này chỉ là một số tài nguyên dễ sử dụng, đã được tạo cho bạn.
Kevin Coppock

30
Cảm ơn! Wow, đó là rất nhiều bố trí. Tất cả các Tham chiếu Android dường như tiết lộ về chúng (trong R.layout.html) là các giá trị không đổi cho mỗi id. Có thể có bất kỳ tài liệu minh họa cho mỗi trong số này với một trường hợp sử dụng mẫu? (ví dụ, "Giao diện X trông giống như [con số với id field] này. Nó được sử dụng tốt nhất trong trường hợp a, b, và c. Nó có thể được nhìn thấy trong hành động trong ứng dụng Y.") Vâng, đó tuyệt vời để biết tôi có thể cướp bóc kho tiền và tự mình hack tất cả, nhưng một danh sách minh họa có thể quét được (so với XML) sẽ giúp ích rất nhiều!
Joe D'Andrea

12
Đây dường như là thông lệ điển hình của Google. Họ phát hành tất cả công nghệ tuyệt vời này và có tất cả các kỹ năng tài liệu của IBM.
tức giận

35

Đây là một phần của hệ điều hành Android. Đây là phiên bản thực tế của tệp XML được xác định.

đơn giản_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" />

đơn giản_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> 

13

như đã trả lời ở trên bởi: kcoppock và Joril

truy cập tại đây: https://github.com/android/pl platform_frameworks_base/tree/master/core/res/res/layout

chỉ cần nhấp chuột phải vào tệp bố cục bạn muốn, sau đó chọn 'Lưu dưới dạng', lưu ở đâu đó, sau đó sao chép tệp trong thư mục 'bố cục' trong dự án Android của bạn (nhật thực) ...

bạn có thể thấy cách bố trí như thế nào :)

con đường để đi ...


9

Như Klap đã đề cập "android.R.layout.simple_list_item_1 là một tham chiếu đến tài liệu bố cục XML tích hợp là một phần của HĐH Android"
Tất cả các bố cục được đặt trong: sdk \ platform \ android-xx \ data \ res \ layout
Để xem XML của layout:
Eclipse : Đơn giản chỉ cần gõ android.R.layout.simple_list_item_1 ở đâu đó trong mã, giữ Ctrl, di chuột qua simple_list_item_1 và từ danh sách thả xuống xuất hiện, chọn "Khai báo mở trong layout / simple_list_item_1.xml". Nó sẽ hướng bạn đến nội dung của XML.
Android Studio : Cửa sổ dự án -> Thư viện bên ngoài -> Nền tảng Android X -> res -> bố cục và tại đây bạn sẽ thấy danh sách các bố cục có sẵn.
nhập mô tả hình ảnh ở đây


7

android.R.layout.simple_list_item_1, đây là tệp bố cục hàng trong thư mục res / layout chứa thiết kế tương ứng cho hàng của bạn listview. Bây giờ chúng ta chỉ cần liên kết các mục danh sách mảng với cách bố trí hàng bằng cách sử dụng mylistview.setadapter(aa);


5

Không cần phải truy cập các liên kết bên ngoài, mọi thứ bạn cần đều nằm trên máy tính của bạn:

Bố cục Android \ android-sdk \ platform \ android-x \ data \ res \.

Mã nguồn cho tất cả các bố trí Android được đặt ở đây.


4

Per Arvand:
Eclipse: Đơn giản chỉ cần nhập android.R.layout.simple_list_item_1 ở đâu đó trong mã, giữ Ctrl, di chuột qua Simple_list_item_1 và từ danh sách thả xuống xuất hiện, chọn Khai báo mở trong layout / simple_list_item_1.xml . Nó sẽ hướng bạn đến nội dung của XML.

Từ đó, nếu sau đó bạn di chuột qua tab Simple_list_item_1.xml trong Trình chỉnh sửa, bạn sẽ thấy tệp được đặt tại C: \ Data \ application \ Android \ android-sdk \ platform \ android-19 \ data \ res \ layout \ simple_list_item_1.xml (hoặc vị trí tương đương cho cài đặt của bạn).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.