2013-02-05 31 views
5

Vì vậy, tôi đã googled, và cọ rửa SO cho một câu trả lời cho những gì tôi nghĩ có lẽ là một giám sát vô lý, nhưng ở đây đi.Android: ListView cho tôi biết nó có dân cư nhưng không hiển thị các mặt hàng

Tôi có một ListView rằng tôi đang phổ biến với một ArrayAdapter rằng tôi đang xây dựng ra khỏi danh sách các đối tượng mà tôi đang sử dụng ở nơi khác trong ứng dụng của mình. Tôi đã kiểm tra qua getCount rằng có các mục trong bộ điều hợp, cả trước và sau khi tôi gọi .setAdapter(). Tuy nhiên, không có gì hiển thị trong ứng dụng của tôi.

bố trí chính của tôi res/layout/playlistview:

<?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> 

(tôi đặt màu sắc vì vậy tôi có thể nhìn thấy những gì đang xảy ra dễ dàng hơn)

các textview cho từng hạng mục res/layout/singlelistitem:

<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> 

và mã tôi sử dụng để điền mã:

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() trả về String[] và hoạt động.

Tôi có cả hai trong số .notifyDataSetChanged() trong đó, vì tôi thấy rằng trên SO và đã dùng thử.

Khi tôi thay đổi android:layout_height trong đối tượng ListView trong XML của tôi để wrap_content, tôi chỉ thấy nền đục đó là trong LinearLayout rằng kết thúc tốt đẹp đó. Khi tôi đặt ListViewandroid:layout_height thành match_parent, toàn bộ màn hình là #206 (magentish).

Khi tôi kiểm tra getCount() trên bộ điều hợp trước setAdapter() nó cho biết có các mục. Khi tôi kiểm tra nó sau đó, từ chính bản thân nó, nó nói có cùng một số mục. Tôi hoàn toàn bị mất trên này, nhưng không có gì được hiển thị.

+0

Tôi vừa kiểm tra và hoạt động tốt. Tôi nghi ngờ rằng một cái gì đó khác là rối tung với 'playlistView' sau cuộc gọi đến' buildPlaylistView(); 'và có hiệu quả đặt lại nội dung và/hoặc bộ điều hợp của nó. Nó không nằm trong mã bạn đã đăng. – andr

+0

Điều duy nhất tôi làm với playlistView toàn cầu là gọi bringToFront() và bình luận nó ra không có gì. Tôi cũng đặt chế độ hiển thị, không hợp lệ để buộc vẽ lại và thực hiện một số hoạt ảnh trên chế độ xem được kết nối với id/playlist_screen (bố cục ngoài). – Kimo

+0

cũng ... Tôi không biết. tải lên toàn bộ dự án nếu bạn có thể. không có nó chỉ là đoán. như tôi đã nói - tôi đã chế nhạo 'playlist.titlesAsArray()' để trả về dữ liệu tĩnh, chạy nó trên một thiết bị thực tế và nó làm việc bị phạt. Tôi có nghĩa là nó cho thấy tất cả các mục trong bộ chuyển đổi với màu sắc thích hợp, vv Bạn cũng có thể cung cấp nhiều gợi ý hơn - bạn đang sử dụng API nào? bạn đang chạy điều này trên giả lập hoặc thiết bị? mọi thứ có thể quan trọng ở đây ... – andr

Trả lời

2

Hãy thử thay đổi từ android:orientation="horizontal" thành android:orientation="vertical" điều này có thể khắc phục.

+0

Đã không hoạt động, nhưng dẫn tôi đến hỏi, có thể ListView không được ngang? Phần còn lại của ứng dụng của tôi là nằm ngang, đó là lý do tại sao trong video theo cách đó (nó phát video ở định dạng ngang) – Kimo

+0

Đối với chế độ xem danh sách, chúng tôi không thể đặt hướng, trong bài đăng tôi đã đề cập về hướng của chế độ xem gốc. Tôi nghi ngờ rằng các đối tượng đang nhận được kết xuất nhưng bị ẩn do bố cục. –

+0

Cảm ơn vì điều đó, tôi đã xóa hướng (và thử hàng chục thứ khác) – Kimo

Các vấn đề liên quan