2011-09-13 10 views
1

ListViewのアイテムの表示が終了したら、何かする必要があります。 今はNotifyDataSetChangedを呼び出してからlist.FirstVisiblePositionを使用しますが、問題は呼び出し中の項目が表示されないことです。Android ListView on display/initialized event

したがって、アイテムが画面に表示されているときにコードをトリガーするにはどうすればよいですか?

これは、表示されている項目に対してのみ作業を行う必要があるためです。

おかげで、ニクラス

答えて

3

リストビューで何コレクションタイプを使用していますか? 「通常」のコレクションタイプ(たとえばSystem.Collections.Generic.List<T>)を使用している場合、ListViewの作成後にコレクションに追加するアイテムはListViewに表示されません。代わりにJavaList<T>を使用する必要があります。

Collections binding overviewの末尾に例を参照してください:

// This fails: 
var badSource = new List<int> { 1, 2, 3 }; 
var badAdapter = new ArrayAdapter<int>(context, textViewResourceId, badSource); 
badAdapter.Add (4); 
if (badSource.Count != 4) // true 
    throw new InvalidOperationException ("this is thrown"); 

// this works: 
var goodSource = new JavaList<int> { 1, 2, 3 }; 
var goodAdapter = new ArrayAdapter<int> (context, textViewResourceId, goodSource); 
goodAdapter.Add (4); 
if (goodSource.Count != 4) // false 
    throw new InvalidOperaitonException ("should not be reached.");