4

フッターを追加した ListView があります。特定のフッターが現在リストビューに追加されているかどうかを確認するには、リスト ビューでどのような呼び出しを行うことができますか?

  listView.findViewById(errorFooterid) ?

方法はないようです

 view.containsView(viewReference)

既存のビューが別のビューに含まれているかどうかを確認するのは基本的な操作のように思えますが、Android でこれを確認する信頼できる方法があるかどうかはわかりません。

SDK がこれを確認する明確で簡単な方法をサポートしていないのはなぜですか? findByView(R.id.viewId) と null チェックでさえ、ブール値チェックを行うための非常にエレガントな方法ではありません。

4

3 に答える 3

18

フッターが 1 つしかなく、それが追加されているかどうかを知りたい場合は、

public int getFooterViewsCount ()
Since: API Level 1

Returns the number of footer views in the list. Footer views are special views at the bottom of the list that should not be recycled during a layout.
Returns

    The number of footer views, 0 in the default implementation. 

したがって、0 が返された場合、listviewフッターはありません

yourListView.getFooterViewsCount();
于 2012-09-28T01:30:37.040 に答える
8

次のコードを使用して、フッター ビューの数を確認できます。

listView.getFooterViewsCount();

0 を返す場合、フッター ビューは存在しません。

于 2014-01-15T08:26:17.900 に答える
0

これがアクティビティ クラスにある場合は、findViewById(int id)を使用します。メソッドが null を返す場合、フッターが追加されていないと見なすことができます。

これがフラグメント クラスの場合、 onCreateView() メソッドで返すビューをフラグメント クラスのデータ メンバーとして格納できます。次に、保存したビューで findViewById() を呼び出すことを除いて、同じように機能します。

LinearLayout footer = (LinearLayout) findViewById(footerId);
if (footer == null)
{
    //add the footer
}
else
{
    //Update the footer
}
于 2012-09-28T00:10:28.803 に答える