2011-10-11 27 views
5

Nếu tôi gặp lỗi "android.content.res.Resources $ NotFoundException: ID tài nguyên # 0x7f050007 loại # 0x12 không hợp lệ", tôi có thể tìm một số tài nguyên này là gì nếu tôi biết ID?Android tìm tài nguyên theo id trong thời gian chạy

 ListView list = (ListView)findViewById(R.id.messages_list_view); 
     list.setAdapter(new ArrayAdapter<String>(context, 
     R.layout.messages_list, headers)); 

messages_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:id="@+id/messages_list_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <ListView android:id="@+id/messages_list_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 
+2

Hãy gửi nguồn. –

+0

Bạn có nghĩa là bạn không sử dụng R.id? Bạn có thể gợi ý cho tôi lý do tại sao? –

+0

mà không biết bạn đã cố gắng triển khai điều gì, chúng tôi có thể đề xuất như thế nào? –

Trả lời

2

Bạn có thể sử dụng chức năng tìm kiếm trong nhật thực, tìm kiếm "0x7f050007" hoặc đi đến projectfolder/gen/path/R.java có chứa tài nguyên của mình.

Bạn sẽ tìm thấy một cái gì đó như thế này:

public static final int lineItem=0x7f07001c; 

Sau đó tìm kiếm (trong ví dụ này) lineItem với chức năng tìm kiếm nhật thực. Nó sẽ đưa bạn đến tài nguyên của bạn trong mã.

+0

cảm ơn vì đã trỏ tới R.java – Sergey

0

Kiểm tra hàng nhập của bạn (ở đầu tệp lớp học của bạn). Có lẽ bạn nhập

android.R 

(trong đó cung cấp quyền truy cập vào các nền tảng nguồn lực) thay vì

{your_package_name}.R 

(bạn cũng có thể để trống).

5

Tôi gặp lỗi này khi sử dụng ListView trong Phân đoạn.

Đã giải quyết bằng cách di chuyển các dòng setAdapter sang hàm onViewCreated của Phân đoạn. (có nghĩa là trước khi khung nhìn được tạo ra thì ListView không hợp lệ).

để bạn có được:

public void onViewCreated(View view,Bundle savedInstanceState){ 
    ListView list = (ListView) getView().findViewById(R.id.thelist); 
    list.setAdapter(mAdapter); 
} 
5

Đối với những người mà các giải pháp nêu trên khác không có tác dụng.

tôi đã sai lầm ngớ ngẩn này: -

setContentView(R.id.something); 

Thay vì

setContentView(R.layout.something); 

Corrected đó, và lỗi đã biến mất: D

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