2

私とデータベースへのカーソルアダプターとのViewBinder間の仲介者として機能している があります。ListViewこのデータが表示されているコンテキストに応じて、ViewBinderさまざまなことを行う必要があります。

例として、存在するすべてのタスク グループのタスクを表示するタスク管理アプリケーションを取り上げます。この場合、特定のタスク グループの 1 つのタスクを表示していた場合、アプリはリスト ビューにタスク グループの名前を表示したくない場合があります。リスト ビュー アイテムには非表示のフィールドを含めることができViewBinder、タスク グループの名前をフィールドにマップし、必要に応じて表示するように設定することができます (メイン アプリケーションの指示に従って)。

私の質問はViewBinder、それが表示されているコンテキストをどのように伝えれば、どのように動作するかを判断できるのでしょうか?

これはおそらく多くの異なる を実装することで実現できると思いますが、これには多くのコードを複製する必要があり、特定のパラメーターを渡すだけViewBindersの単一で行うことをお勧めします。ViewBinder

4

1 に答える 1

2

これは、実装している ViewBinder のコンストラクターを実装することで実行できます。

例ごとに、次のようなことができます。

private Boolean displayGroupName = true;

public ToDoViewBinder(Boolean displayGroupName) {
    this.displayGroupName = displayGroupName;
}

@Override
public boolean setViewValue(View view, Cursor c, int columnIndex) {

   if(displayGroupName)
   {
        //Do necessary stuff
        return true;
   }
   else
        return false;
}
于 2011-05-03T20:07:10.057 に答える