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 ListView
android: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
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
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
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