2011-10-11 13 views
5

Se ottengo l'errore "android.content.res.Resources $ NotFoundException: ID risorsa # 0x7f050007 il tipo # 0x12 non è valido" posso trovare alcuni di questa risorsa se ne conosco la ID?Android trova la risorsa da id durante il runtime

 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

Si prega di inviare la fonte. –

+0

Vuoi dire che non usi R.id? Potresti suggerirmi perché? –

+0

senza sapere cosa hai provato a implementare, come possiamo suggerire? –

risposta

2

È possibile utilizzare la funzione di ricerca in Eclipse, cercare "0x7f050007" o andare a projectfolder/gen/path/R.java che contiene le risorse.

Troverete qualcosa di simile:

public static final int lineItem=0x7f07001c; 

Poi cercare (in questo esempio) lineItem con funzione di ricerca eclissi. Ti porterà alla tua risorsa nel codice.

+0

grazie per indicare a R.java – Sergey

0

Controlla le tue importazioni (nella parte superiore del file di classe). Forse è stata importata

android.R 

(che fornisce l'accesso alla piattaforma-risorse) al posto di

{your_package_name}.R 

(si può anche lasciare vuoto).

5

I Ho riscontrato questo errore quando si utilizza ListView in un frammento.

Risolti spostando le linee setAdapter nella funzione onViewCreated del Fragment. (ha senso che prima che la vista venga creata, il ListView non è valido).

in modo da ottenere:

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

Per coloro i quali altre soluzioni di cui non funzionano.

ho fatto questo stupido errore: -

setContentView(R.id.something); 

Invece di

setContentView(R.layout.something); 

Corretto che, e l'errore era scomparsa: D

Problemi correlati