1変えるのに全部変えるとかバカス。
DBだけ変わってりゃいいんだよ。どうせActivityCreatedで更新すんだしさー。
前提
CotentProvider実装済み。
select発行→cursor.setNotificationUri(getContext().getContentResolver(), uri);
2013/08/13追記
DML発行→contentProviderコマンド投げたら特に何もしないに変更してました。
_idやらなんやらはView.GoneしてるTextviewのhintにこっそり設定してそれで掴んでます。
追記ここまで。
ListFragmentを使用。
getListView.setDivider(null)でデフォルトのディバイダーを消してます。
adapterはCursorAdapterをカスタムしたもの。
cursorloaderの戻り値をそのまんまadapterにセット。newでViewholdr。bindでv.getTag()。
更新の場合
更新するViewを取得してv.getTag()でViewHolderをゲット。
ViewHolderから内容を書き換える。
notifyとかdatasetchangedとか使ってない。
削除の場合
削除するViewをVisivle.GONEに設定。
v.getLayoutParams().height = 0にする。←力技です
notifyとかdatasetchangedとか使ってない。
GONEだけでは行が詰まらなかった。height = 0だとちゃんと行が詰まる。
height = 0 でViewのレイアウトの更新なのか、adatpterviewでの更新なのか不明。
もし、viewだけの更新ならView.Goneしてからそのトリガー呼べばできるか?
アニメーションつけて下のViewを上に上げるのが理想かな。
グルーピングできるなら一斉に動かせるのだろうけど、
たぶんできないと思うから連動かな。
LayoutTransition使えると楽そうなんだけどなー。ダミーでもつっこむか?
追加の場合
adapter自体を更新しないとだめみたい。
ぽいっといれられないのか?
ためしに無理やりCursor取得してそいつでnewView→bindViewを読んでみた。
CursorLoaderがおかしくなった。エラーにはならないけども。
リフレッシュしないといけないなら、
WHERE field1 = 'hoge' ORDER BY id Desc LIMIT 10 OFFSET 0 とかか?
getViewとかで何とかなりませんか。
他のadapterならどうなんだろうなー
0 件のコメント:
コメントを投稿