2010-02-16 45 views
22

Im kéo danh sách các đối tượng sản phẩm từ một cuộc gọi cơ sở dữ liệu và tôi muốn xây dựng một ListView của dữ liệu trong hoạt động của tôi với đầu trang và chân trang không cuộn. Mỗi hàng sẽ bao gồm hình thu nhỏ sản phẩm, một số dữ liệu và nút được sắp xếp theo chiều ngang. Tôi hiểu rằng việc sử dụng ListView tôi có thể thổi phồng mỗi hàng bằng cách sử dụng một bố cục riêng biệt.Ví dụ về Danh sách phức tạp với dữ liệu phức tạp và bố cục phức tạp của mỗi hàng?

Hầu hết các ví dụ mà tôi thấy bằng cách sử dụng ListView chỉ hiển thị một chuỗi chuỗi đơn giản lấp đầy toàn bộ hoạt động, nhưng hầu hết các ví dụ thực tế sẽ phức tạp hơn và tôi không thể tìm thấy bất kỳ ví dụ nào giải thích cách tất cả các mảnh ghép đều với nhau.

Có ai có bất kỳ gợi ý nào để lấy mẫu mã bằng lời giải thích hay không?

Trả lời

3

Cách dễ nhất để có hàng phức tạp trong ListView là thông qua SimpleAdapter. Có một số ví dụ xung quanh cho điều đó.

Để buộc ListView lấp đầy phần còn lại của màn hình, hãy đặt các thuộc tính như sau:

Sử dụng LinearLayout.

Trên xem danh sách:

android:layout_height="fill_parent", 
android:height="0dp", 
android:layout_weight="1" 

Trên tất cả các vật dụng khác:

android:layout_height="wrap_content" 

Đừng đặt một chiều cao hoặc layout_weight

+0

Ví dụ khác không hiển thị XML bố cục chính. Thông thường một ứng dụng sẽ có một tiêu đề, một danh sách các mục và có thể thêm một số widget gần phía dưới. Không chắc chắn làm thế nào để có các vật dụng dưới cùng ở phía dưới và không đi qua toàn bộ cha mẹ. Tôi muốn chế độ xem danh sách mở rộng để lấp đầy khoảng trống giữa các tiện ích đầu trang và chân trang nhưng sau đó nó sẽ chỉ cuộn mà không ảnh hưởng đến chúng. – Eno

+0

Tôi đã bỏ lỡ phần câu hỏi đó, hãy xem các chỉnh sửa. –

+0

liên kết không hoạt động, vui lòng kiểm tra liên kết của bạn. – Deepak

6
private static class CustomCursorAdapter extends CursorAdapter { 

    protected ListView mListView; 

    protected static class RowViewHolder { 
     public TextView mTitle; 
     public TextView mText; 
    } 

    public CustomCursorAdapter(Activity activity) { 
     super(); 
     mListView = activity.getListView(); 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
     // do what you need to do 
    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     View view = View.inflate(context, R.layout.row_layout, null); 

     RowViewHolder holder = new RowViewHolder(); 
     holder.mTitle = (TextView) view.findViewById(R.id.Title); 
     holder.mText = (TextView) view.findViewById(R.id.Text); 

     holder.mTitle.setOnClickListener(mOnTitleClickListener); 
     holder.mText.setOnClickListener(mOnTextClickListener); 

     view.setTag(holder); 

     return view; 
    } 
} 
Các vấn đề liên quan