2013-07-27 5 views
11

Ich versuche eine Listview in einem Fragmente zu verwenden. Aber ich bekomme diesen Fehler: FATALE AUSNAHME: main java.lang.RuntimeException: Inhalt hat Sicht mit ID-Attribut 'android.R.id.list' das ist keine ListView-Klasse.
Mein Code:
FATAL AUSNAHME: Haupt java.lang.RuntimeException: Inhalt hat Ansicht mit id-Attribute ‚android.R.id.list‘, die keine Listview-Klasse ist

Mein 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: Lösung: Erklären Sie Listview mit Android: id = "@ id/android: Liste"

+2

wenn Sie Listview in das Layout dann stellen Sie sicher, Sie deklarieren Listview mit 'android: id =" @ id/android: list "' id –

Antwort

17

Wenn Sie eine ListActivity/Fragment verwenden, sollte die ID für Ihre ListView in Ihrem Layout @android: ID/Liste sein, also: In Ihrer whitelist_list.xml (whatever_activityname .xml) in der Listview ändern, um die ID zu android: id = "@ android: id/list"

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

Ich hatte diesen Fehler vor einiger Zeit. Aus irgendeinem Grund wurde das XML für das Layout geändert, sodass eine der Komponenten den falschen Typ hatte. Gehen Sie in das XML und suchen Sie nach der 'android.R.id.list', die nicht zu diesem Objekt gehört. Ich weiß nicht, wie es sich geändert hat, aber ich denke vielleicht, dass ich bei der Verwendung des GUI-Editors etwas zu einer Liste geändert habe, die nicht hätte sein sollen. Wenn Sie es nicht sehen, senden Sie das Layout

+0

Das hat mir geholfen. Aber ich hatte zwei ListFragments mit zwei Layoutdateien, die jeweils die ListView mit der ID '@android: id/list' benötigten. Ich habe mein ListFragment wieder in ein normales Fragment in einer Datei geändert und das ListView selbst hinzugefügt. – Micky

Verwandte Themen