2012-11-19 34 views
9

Tôi có chế độ xem danh sách được hiển thị trên một đoạn. Tôi có một nút ở dưới cùng của màn hình trong đó khi được nhấn, sẽ gọi một dịch vụ web để truy xuất bất kỳ dữ liệu bổ sung nào. Nếu có dữ liệu bổ sung, tôi cần thêm nó vào chế độ xem danh sách. Tôi đã tìm kiếm diễn đàn này và rất nhiều trang web khác để thử và tìm cách để làm điều đó, nhưng tôi đã không thành công. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.Android: ListFragment: Cách làm mới danh sách

Tôi hiện đang nghĩ rằng tôi cần phải thêm mảnh dyncamically thay vì có nó được xác định trên bố trí XML sau đây.

Tôi đang sử dụng ListFragment để tăng lượt xem danh sách trên màn hình.

Tôi có một màn hình có hai đoạn trên đó. XML cho màn hình dưới đây: -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="horizontal" > 

     <fragment 
      android:name="atos.mobilereporting.com.ReportList" 
      android:layout_width="323dp" 
      android:layout_height="match_parent" /> 

     <fragment 
      android:name="atos.mobilereporting.com.ReportDetail" 
      android:layout_width="958dp" 
      android:layout_height="match_parent" /> 
    </LinearLayout> 


    <Button 
     android:id="@+id/getReports" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Refresh Mobile Reports" /> 

</LinearLayout> 

Mã để thổi phồng xem là dưới đây: -

public class ReportList extends ListFragment { 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      // Get list of reports... 
      repList = ReportDefinitionFactory.buildReportList(3); 

      activity = getActivity(); 

      ListAdapter la = new ArrayAdapter<String>(getActivity(), 
        android.R.layout.simple_list_item_1, 
        ReportDefinitionFactory.getReportDescriptions(repList)); 

      setListAdapter(la); 

     } 

    } 

code này cho thấy một cái nhìn danh sách đơn giản với 3 hàng trên đó.

Đó là vào thời điểm này tôi phải dừng lại vì tôi không biết phải đi từ đây. Tôi có mã sẽ thêm một hàng bổ sung vào mảng được sử dụng để khởi tạo chế độ xem danh sách ban đầu, nhưng tôi không biết cách tôi có thể gọi làm mới trên chế độ xem danh sách.

Cảm ơn

Martin

Trả lời

14

Bạn cần phải gọi la.notifyDataSetChanged() để buộc refresh danh sách một khi dữ liệu đã thay đổi.

+0

Xin chào, nó nói phương thức thông báoDataSetChanged là không xác định cho loại ListAdapter. –

+2

Chỉ cần thay thế 'ListAdapter la = new ArrayAdapter' bởi 'ArrayAdapter la = new ArrayAdapter' – fiddler

+0

Mọi thứ trông đẹp hơn, bây giờ tôi đã nhận ra, tôi aint populating my correclty mảng của tôi. Cảm ơn bạn đã giúp đỡ với những lời khuyên. –

2

Sử dụng hàm ArrayAdapter notifyDataSetChanged().

Điều này có thể được thêm vào trong ArrayAdapter, nếu đó là vị trí mà dữ liệu được cập nhật. Nếu không, hãy thêm nó vào cùng một khu vực gọi la.add().

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