3

アダプタからカスタム ビューで埋められた ListView があります。各ビューには 2 つのボタンがあり、1 つは別のアクティビティを開始してそのリスト アイテムの内容を編集し、もう 1 つはそのアイテムを削除します。

私の質問は、これらのボタンの ClickEvent ハンドラーをどこに置くべきですか? 必要な情報がすべて揃っているので、それらをカスタム ビュー コードに正しく配置する必要がありますか? アイテムを削除してアダプタ データを更新し、onDataSetChanged() などを呼び出す ASyncTask を開始する必要がありますか?

これはすべて、イベントを通じて ListActivity にバブルアップする必要がありますか?

おそらくどのレベルでも機能させることができますが、この階層 (Activity->ListView->Adapter->ListItemView) に沿ったどのレベルで、ListView のバッキング データを編集/削除するのが適切ですか?

4

1 に答える 1

0

私はこのようにします:

  • Adapters には、基礎となるデータ操作 (例: ) のためのパブリック メソッドがpublic void deleteItem(int position)あり、それらがジョブを実行しnotifyDataSetChanged()て最後に呼び出します。
  • Activityそれへの参照をAdapterローカル変数に保持します。
  • Listeners は通常、適切なメソッドをActivity呼び出す匿名の内部クラスとして作成されます。Adapter
于 2010-07-14T03:47:28.957 に答える