2013-07-27 19 views
11

Ben fragmanı bir ListView kullanmaya çalışıyorum değil id niteliğine 'android.R.id.list' ile bir görünümü vardır. Ancak şu hatayı aldım: FATAL EXCEPTION: ana java.lang.RuntimeException: İçerik, bir listView sınıfı olan olmayan 'android.R.id.list' kimlik özniteliğine sahiptir.
Benim Kod:ÖLÜMCÜL İSTİSNA: Ana java.lang.RuntimeException: İçerik bir ListView sınıfı

Benim 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(); 

Düzenleme: Çözüm: android ile ListView bildirin: id = "@ id/android: listesi"

+2

o zaman 'android ile ListView beyan emin olun: id =" @ id/android: "id –

cevap

17

Bir ListActivity/Fragment kullanırsanız, ListView öğenizin düzeninizdeki kimliği @android: id/list, yani: whitelist_list.xml dosyasında (her ne olursa olsun) .xml) sizin ListView android için id değiştirin: id = "@ android: id/listesi" Eğer düzeninde ListView varsa

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

Bu hatayı bir süre önce yaşadım. Bazı sebeplerden dolayı, mizanpajın XML'i, bileşenlerden birinin yanlış türde olması için değiştirilmişti. Xml'ye gidin ve o ürüne ait olmayan 'android.R.id.list' dosyasını arayın. Nasıl değiştiğini bilmiyorum, ama belki de GUI editörünü kullanırken, olmaması gereken bir şeyi değiştirdim. Bunu görmüyorsanız, düzeni yükleyin

+0

" Bu bana yardımcı oldu. Ama iki ListFragments'ım vardı. Bunların her biri ListView’e id '@android: id/list' ile ihtiyaç duyan iki düzen dosyasına sahipti. ListFragmentimi tek bir dosyada normal bir Fragman olarak değiştirdim ve ListView'i kendim ekledim. – Micky

İlgili konular