Series
のオブジェクトのコレクションを保持するのに、RealmRecyclerViewAdapter
を使用しています。 APIを使用してSeries
データを更新すると、アダプタは自動的に更新されますが、表示されるイメージは変更され、正しくありません。私のテストでは、RealmRecyclerViewAdapter
コンストラクタを介してfalseに自動更新を設定するとこの動作が停止することに気づいたので、リスト項目を更新するとこれが発生します。また、私がauto-update
をtrue
に残して、onBindViewHolder
の呼び出し中にブレークポイントを設定しても、画像は正しいです。ブレークポイントなしで(フルスピードで)コードを実行すると、間違った画像が表示されます。奇妙なのは、更新後に画像が正しく表示されないことだけです。テキストはまだ正確です。自動更新RealmRecyclerViewAdapterは、更新時に間違ったデータを表示します
これは、この動作を表示するGIFです。ご覧のとおり、データを更新すると、行が更新され、間違ったイメージが表示されます。それはSeries
用アニメが含まれている場合
public void onBindViewHolder(ViewHolder holder, int position) {
final int adapterPosition = holder.getAdapterPosition();
holder.series = getItem(adapterPosition);
final String MALID = holder.series.getMALID();
...
int imageId = App.getInstance().getResources().getIdentifier("malid_" + holder.series.getMALID(), "drawable", "<app-package>");
if (imageId != 0) {
Picasso.with(App.getInstance()).load(imageId).fit().centerCrop().into(holder.mPoster);
} else {
File cacheDirectory = App.getInstance().getCacheDir();
File bitmapFile = new File(cacheDirectory, holder.series.getMALID() + ".jpg");
Picasso.with(App.getInstance()).load(bitmapFile).placeholder(R.drawable.placeholder).fit().centerCrop().into(holder.mPoster);
}
holder.mAddButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addSeriesHelper(MALID);
}
});
holder.mMinusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RemoveSeriesDialogFragment dialogFragment = RemoveSeriesDialogFragment.newInstance(self, MALID, adapterPosition);
dialogFragment.show(seriesFragment.getMainActivity().getFragmentManager(), TAG);
}
});
}
私は最初のアプリのリソースを確認してください。ここで
行の画像が設定されているonBindViewHolder
の抜粋です。そうでない場合は、キャッシュされたバージョンが使用可能かどうかをチェックします。