2011-06-28 84 views
9

Tôi đang cố gắng tạo danh sách các mục có chứa hình ảnh và một số mô tả cho hình ảnh trong từng cá nhân. Sau đó, danh sách sẽ được đặt trong một fragment bên trong ứng dụng. Bất cứ ai có thể hướng dẫn tôi để tạo ra nó? Tôi không chắc chắn làm thế nào tôi có thể làm điều đó mà không cần ListActivity.Android ListView trong Fragment

Trả lời

43

Dường như Fragment của bạn nên phân lớp ListFragment (không phải ListActivity). onCreateView() từ ListFragment sẽ trả lại ListView bạn có thể điền.

Dưới đây là thêm thông tin về danh sách Populating từ hướng phát triển: Hello, ListView

+22

Nếu bạn thấy câu trả lời này hữu ích, hãy đánh dấu câu trả lời và đăng câu hỏi mới cho vấn đề mới của bạn mà ai đó có thể giúp bạn. –

16

Dưới đây là một đoạn mã để giúp bạn hiển thị ListView trong một đoạn .:

public class MessagesFragment extends ListFragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_messages, container, 
      false); 

    String[] values = new String[] { "Message1", "Message2", "Message3" }; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
     android.R.layout.simple_list_item_1, values); 
    setListAdapter(adapter); 
    return rootView; 
} 
} 

Và, đây là cách xml sẽ trông như:

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

Nếu bạn không sử dụng 'danh sách' làm ID hoặc không bao gồm ListView vào bố cục, ứng dụng sẽ đổ vỡ khi bạn thử để hiển thị hoạt động hoặc đoạn.

Tham chiếu: http://www.vogella.com/tutorials/AndroidListView/article.html#listfragments

+0

đảm bảo không wrap_content trong ListView cho layout_height, thay vì fill_parent hoặc match_parent.http: //stackoverflow.com/questions/11295080/android-wrap-content-is-not-working-with-listview –