0

ListViewを使用して作成していLinearLayoutます。このリストを 内に配置したいので、これを行っていScrollViewます。でリストを作成する方法は次のとおりLinearLayoutです。

adapter = new BookingSessionListAdapter(this,null, appDeleg);  
LinearLayout ll = (LinearLayout)this.findViewById(R.id.listLayout);

LinearLayout.LayoutParams layoutParams =
newLinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);

for (int i = 0; i < adapter.getCount(); i++)   
{    
    View item = adapter.getView(i, null, null);    
    ll.addView(item,layoutParams);

}

ここで、リストを更新したいと思います。これどうやってするの?

ありがとう

4

2 に答える 2

1

まず最初に、実際の大まかな実装を使用してを表示していることをお伝えしますListListView車輪の再発明の代わりに、これに使用することを検討したいかもしれません。Listただし、これは、新しいのデータに従って更新する大まかなコードですBookingSessionListAdapter

public void refreshList(BookingSessionListAdapter adapter, LinearLayout ll,
        LinearLayout.LayoutParams layoutParams) {
    ll.removeAllViews();
    for (int i = 0; i < adapter.getCount(); i++) {
        View item = adapter.getView(i, null, null);
        ll.addView(item, layoutParams);

    }
}

これが行うことは、すべてViewsを削除し、新しいものに従ってLinearLayout追加することですViewsBookingSessionListAdapter

于 2012-11-28T13:22:56.763 に答える
0

自分で作業を行う必要がありますが、これは通常 ListView に無料で付属しています。データについて何も知らずに解決策を考え出すことは困難です (アイテムの数など)。

1 つの方法は、LinearLayout からすべてのビューを削除し、新しいビューを再度追加することです。

protected void notifyDataChange() {
   ll.removeAllViews();
   for (int i = 0; i < adapter.getCount(); i++) {    
      View item = adapter.getView(i, null, null);    
      ll.addView(item,layoutParams);
   }
}

ただし、ListView / Adapter がすべての重い作業 (メモリ管理 / ビューのキャッシュなど) を行うため、アプローチ全体を再考します。

HTH。

于 2012-11-28T13:20:21.523 に答える