2013-07-27 6 views
11

Sto cercando di utilizzare un ListView in un frammento . Ma ottengo questo errore: ECCEZIONE FATALE: main java.lang.RuntimeException: il contenuto ha una vista con l'attributo id 'android.R.id.list' che non è una classe ListView.
My Code:irreversibile: main java.lang.RuntimeException: Content ha vista con l'attributo id 'android.R.id.list' che non è una classe ListView

mio ListFragment:

public class whitelist_list extends ListFragment { 


    Context mContext; 

    @Override 
    public void onAttach(Activity activity) { 
     mContext = activity; 
     Log.i("Event", "onAttach called"); 
     super.onAttach(activity); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     String[] values = new String[] { "Android", "iPhone", "WindowsMobile", 
       "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
       "Linux", "OS/2" }; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
       android.R.layout.simple_list_item_1, values); 
     setListAdapter(adapter); 
     return inflater.inflate(R.layout.whitelist_content, container, false); 
    } 

    @Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
     // Do something with the data 
    } 

} 


whitelist_list newFragment = new whitelist_list(); 
fragmentManager.beginTransaction() 
.replace(R.id.content_frame, newFragment) 
.commit(); 

Edit: Soluzione: Dichiarare Listview con Android: id = "@ id/Android: lista"

+2

se avete ListView nel layout quindi assicuratevi di avere dichiarare ListView con 'Android: id =" @ id/android: lista "' id –

risposta

17

Se utilizzi un oggetto ListActivity/Fragment, l'id per il tuo ListView nel tuo layout dovrebbe essere @android: id/list, quindi: Nel tuo whitelist_list.xml (any_activityname .xml) in ListView cambiare l'id per Android: id = "@ Android: id/lista"

<ListView android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
1

Ho avuto questo errore qualche tempo fa. Per qualche motivo l'XML per il layout era stato modificato in modo che uno dei componenti avesse il tipo sbagliato. Entra nell'xml e cerca "android.R.id.list" che non appartenga a quell'elemento. Non so come sia cambiato, ma penso che forse quando uso l'editor della GUI, ho cambiato qualcosa da elencare che non avrebbe dovuto essere. Se non lo visualizzi, pubblica il layout

+0

Questo mi ha aiutato. Ma avevo due ListFragments, con due file di layout che richiedevano ciascuno il ListView con l'id '@android: id/list'. Ho cambiato il mio ListFragment di nuovo in un frammento normale in un file e aggiunto il ListView me stesso. – Micky

Problemi correlati