2013-02-05 22 views
5

göstermiyorsunuz, ve muhtemelen saçma bir gözetim olduğunu düşünüyorum ne bir cevap SO dolaştılar, ama burada gider bildiğini söylüyor.Android: ListView o doldurulan ama Yani google'dan öğeleri

ArrayAdapter numaralı bir uygulamamın, uygulamada başka bir yerde kullandığım nesnelerin bir listesini oluşturduğum bir ListView var. .setAdapter()'u aramadan önce ve sonra bağdaştırıcıda getCount aracılığıyla kontrol ettim. Ancak başvurumda hiçbir şey görünmüyor.

Benim asıl düzen res/layout/playlistview: Her öğe res/layout/singlelistitem için

textview

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/playlist_screen" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_weight="1" 
android:background="#80000000" 
android:gravity="center" 
android:orientation="horizontal" > 

<ListView 
    android:id="@+id/playlistview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:divider="#206" 
    android:background="#602" > 

</ListView> 

</LinearLayout> 

(Ben daha kolay neler görebiliyordu yüzden renkleri ayarlayabilirsiniz):

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/single_item" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="16sp" 
    android:padding="5dp" 
    android:background="#206"> 
</TextView> 

ve doldurmak için kullandığım kod:

private ListView playlistView; 

private void buildPlaylistView() { 
playlistView = (ListView)findViewById(R.id.playlistview); 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.singlelistitem, R.id.single_item, playlist.titlesAsArray()); 

playlistView.setAdapter(adapter); 

playlistView.setVisibility(View.VISIBLE); 

adapter.notifyDataSetChanged(); 
((ArrayAdapter<String>)playlistView.getAdapter()).notifyDataSetChanged(); 
} 

playlist.titlesAsArray()String[] dönüp çalıştığını gelmez. Ben SO bu konuda buldum ve bir deneyin verdi beri

Ben, orada .notifyDataSetChanged() her ikisine de sahip. Ben wrap_content benim XML ListView nesneye android:layout_height değiştirdiğinizde

, bunu sarar LinearLayout yılında sadece opak bir arka plan bkz. Ben match_parent için ListViewandroid:layout_height ayarlandığında, tüm ekran #206 (magentish) 'dir. i setAdapter() önce adaptör üzerinde getCount() işaretlediğinizde

o ürün olduğunu söyledi. Daha sonra kontrol ettiğimde, görünümün kendisinden aynı sayıda öğe olduğunu söylüyor. Bu konuda tamamen kayboldum ama hiçbir şey gösterilmiyor. android:orientation="horizontal" bu giderebilir android:orientation="vertical" değişen

+0

Sadece kontrol ettim ve iyi çalışıyor. Başka bir şeyin 'playPlaylistView(); 'çağrısından sonra' playlistView' ile uğraştığından ve içeriğinin ve/veya adaptörünün etkin bir şekilde sıfırlandığından şüpheleniyorum. Göndermiş olduğunuz kodda değil. – andr

+0

Küresel olarak playlistView küresel için yaptığım tek şey bringToFront() öğesini çağırmak ve yorumlamak hiçbir şey yapmadı. Ayrıca, yeniden çizmeyi zorlamak ve id/playlist_screen (dış mizanpaj) öğesine bağlı bir görünümde bazı animasyonlar gerçekleştirmek için görünmezliği geçersiz kıldım. – Kimo

+0

iyi ... Bilmiyorum. Eğer yapabiliyorsanız tüm projeyi yükleyin. bu olmadan sadece tahmin ediyor. dediğim gibi - statik verileri döndürmek, gerçek bir cihazda çalıştırmak ve para cezasına çarptırmak için playlist.titlesAsArray() ile alay ettim. İyi bir şekilde, adaptördeki tüm öğeleri uygun renkler, vb. Ile gösterdiğim anlamına gelir. Ayrıca daha fazla ipucu verebilirdiniz - hangi API'yi kullanıyorsunuz? Bunu emülatör veya cihazda mı çalıştırıyorsunuz? Burada her şey önemli olabilir ... – andr

cevap

2

deneyin.

+0

Çalışmadı, ama bana sormamı yönlendirdi, ListView'ın yatay olmaması mümkün mü? Uygulamamın geri kalanı yatay, bu yüzden orada bu şekilde (manzara modunda videolar oynatıyor) – Kimo

+0

Liste görünümü için yönlendirmeyi ayarlayamıyoruz, post içinde ana görünüm yönelimi hakkında bahsediyordum. Nesnelerin işlenmesinden ve düzen nedeniyle gizlenmesinden şüphe duyuyorum. –

+0

Bunun için, ben oryantasyonu kaldırdım (ve başka bir şey denedim) – Kimo