T
The data are read in a redefined method onLoadFinished.
In order to correct the error, the listener must be moved to displayPoem. public void displayPoem(Cursor cursor) {
if (!cursor.moveToFirst()) {
finish();
}
String title = cursor.getString(cursor.getColumnIndexOrThrow(PoemsContract.Poems.COLUMN_TITLE));
tv_Title.setText(title);
String poem = cursor.getString(cursor.getColumnIndexOrThrow(PoemsContract.Poems.COLUMN_POEM));
tv_Poem.setText(poem);
String years = cursor.getString(cursor.getColumnIndexOrThrow(PoemsContract.Poems.COLUMN_YEARS));
tv_Years.setText(years);
String favorite = cursor.getString(cursor.getColumnIndexOrThrow(PoemsContract.Poems.COLUMN_FAVORITE));
if (favorite.equals("0")) {
iv_heart.setImageResource(R.drawable.heart);
} else {
iv_heart.setImageResource(R.drawable.heart_ok);
}
iv_heart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (favorite.equals("0")) {
ContentValues contentValues = new ContentValues();
contentValues.put(PoemsContract.Poems.COLUMN_FAVORITE, "1");
getContentResolver().update(ContentUris.withAppendedId(PoemsContract.Poems.URI, poemId),
contentValues,
null,
null);
Toast.makeText(getApplicationContext(), "Добавлено в избранное", Toast.LENGTH_SHORT).show();
iv_heart.setImageResource(R.drawable.heart_ok);
} else {
ContentValues contentValues = new ContentValues();
contentValues.put(PoemsContract.Poems.COLUMN_FAVORITE, "0");
getContentResolver().update(ContentUris.withAppendedId(PoemsContract.Poems.URI, poemId),
contentValues,
null,
null);
Toast.makeText(getApplicationContext(), "Удалено из избранного", Toast.LENGTH_SHORT).show();
iv_heart.setImageResource(R.drawable.heart);
}
}
});