2012-03-02 39 views
13
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ListView android:id="@android:id/list" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:layout_weight="1" /> 
    <Spinner android:id="@+id/section_spinner" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_margin="5dp" /> 
</LinearLayout> 

sự khác biệt giữa @android: id và @id trong trường hợp này là gì?sự khác biệt giữa @id và @android: id

+3

id id của riêng bạn, android id android mặc định có một số id. –

Trả lời

20

Bạn cần phải sử dụng @+id khi bạn đang xác định Id của riêng bạn để một cái nhìn, mà trong trường hợp này là section_spinner. Và @android:id được sử dụng khi bạn cần đặt Id của chế độ xem cho Id được xác định trước của Android trong khung công tác. ví dụ: khi sử dụng ListActivity, TabWidget/FrameLayout trong TabHost và v.v.

8

id id của riêng bạn, id Android là id hiện mặc định trong nền tảng res android/values ​​/ ids.xml đã có một số id như dưới đây để biết API 10

res/values/ids.xml 

những tất cả đều id mặc định từ android

<resources> 
    <item type="id" name="background" /> 
    <item type="id" name="checkbox" /> 
    <item type="id" name="content" /> 
    <item type="id" name="empty" /> 
    <item type="id" name="hint" /> 
    <item type="id" name="icon" /> 
    <item type="id" name="icon1" /> 
    <item type="id" name="icon2" /> 
    <item type="id" name="input" /> 
    <item type="id" name="left_icon" /> 
    <item type="id" name="list" /> 
    <item type="id" name="menu" /> 
    <item type="id" name="message" /> 
    <item type="id" name="primary" /> 
    <item type="id" name="progress" /> 
    <item type="id" name="right_icon" /> 
    <item type="id" name="summary" /> 
    <item type="id" name="selectedIcon" /> 
    <item type="id" name="tabcontent" /> 
    <item type="id" name="tabhost" /> 
    <item type="id" name="tabs" /> 
    <item type="id" name="text1" /> 
    <item type="id" name="text2" /> 
    <item type="id" name="title" /> 
    <item type="id" name="title_container" /> 
    <item type="id" name="toggle" /> 
    <item type="id" name="secondaryProgress" /> 
    <item type="id" name="lock_screen" /> 
    <item type="id" name="edit" /> 
    <item type="id" name="widget_frame" /> 
    <item type="id" name="button1" /> 
    <item type="id" name="button2" /> 
    <item type="id" name="button3" /> 
    <item type="id" name="extractArea" /> 
    <item type="id" name="candidatesArea" /> 
    <item type="id" name="inputArea" /> 
    <item type="id" name="inputExtractEditText" /> 
    <item type="id" name="selectAll" /> 
    <item type="id" name="cut" /> 
    <item type="id" name="copy" /> 
    <item type="id" name="paste" /> 
    <item type="id" name="copyUrl" /> 
    <item type="id" name="switchInputMethod" /> 
    <item type="id" name="keyboardView" /> 
    <item type="id" name="closeButton" /> 
    <item type="id" name="startSelectingText" /> 
    <item type="id" name="stopSelectingText" /> 
    <item type="id" name="addToDictionary" /> 
    <item type="id" name="accountPreferences" /> 
    <item type="id" name="smallIcon" /> 
    <item type="id" name="custom" /> 
+1

Bạn sẽ tìm thấy danh sách này ở đâu? Tôi đã tò mò về những id được "xác định trước" bởi Android. Hơn nữa tại sao có những cái được xác định trước? – steve

+3

@steve bạn có thể tìm thấy trong thư mục sdk của bạn dưới tất cả các cấp api android /android-sdk/platforms/android-17/data/res/values/ids.xml –

3
@id 

Bạn đề cập đến bạn sở hữu được xác định id trong dự án của bạn.

@android:id 

Bạn đề cập đến id xác định bởi khuôn khổ android

24

Biểu tượng tại (@) ở đầu chuỗi cho biết trình phân tích cú pháp XML sẽ phân tích và mở rộng phần còn lại của chuỗi ID và xác định nó một tài nguyên ID. Dấu cộng (+) có nghĩa rằng đây là tên tài nguyên mới phải được tạo và thêm vào tài nguyên của chúng tôi (trong tệp R.java). Có một số tài nguyên ID khác được cung cấp bởi khung công tác Android. Khi tham chiếu ID tài nguyên Android, bạn không cần dấu cộng, nhưng phải thêm không gian tên gói android.

@+id/section_spinner có nghĩa là bạn đang tạo id có tên section_spinner trong không gian tên của ứng dụng của bạn. Bạn có thể tham khảo nó bằng cách sử dụng @ id/section_spinner.

@android:id/list có nghĩa là bạn đang đề cập đến danh sách được xác định trong không gian tên Android.

'+' có nghĩa là tạo biểu tượng nếu nó chưa tồn tại. Bạn không cần nó (và không nên sử dụng nó) khi tham chiếu android: symbols, bởi vì những cái đã được định nghĩa cho bạn bởi nền tảng này và bạn không thể tự tạo cho mình trong không gian tên đó.

+0

tx ajay tôi đang tìm kiếm sự khác biệt. giữa @id và @ + id – alex

+0

Điều này, kết hợp với câu trả lời từ @padma bên dưới, chính xác là những gì tôi đang tìm kiếm. Cảm ơn hai bạn! – steve

Các vấn đề liên quan