Моя проблема в этом (не позволяйте параграфу запугать вас, мой вопрос довольно прост, я считаю ):
В MainActivity(A)
у меня есть listView
,Когда я нажимаю на элемент в listView
, я перехожу ко второму activity(B)
.В activity B
у меня есть кнопка, которая позволяет пользователю делать снимки.Теперь я сохраняю эту картинку под именем файла.Поскольку я хочу, чтобы изображение каждого listItem было уникальным, я задаю имя файла изображения для позиции этого элемента.Например, если я нажму item#1
в списке, имя соответствующей картинки будет "1"
.Все это работает очень хорошо, за исключением случаев, когда я удаляю элемент.Затем, когда я добавляю другой элемент в ту же позицию, мой код загружает существующее изображение для этого элемента.Например, если у меня есть изображение под названием '2'
, сохраненное для item2,
, это нормально.когда я удаляю эту запись и добавляю другой элемент, который является новым item2, мой код проверяет, «существует ли имя картинки '2'
существует?».Если да, то установите изображение этой записи на это.Очевидно, что это другая запись, и я не хочу, чтобы это произошло.Возможно, я мог бы удалить картинку вместе с элементом, но я понятия не имею, как это сделать.
Надеюсь, я хорошо объяснил свою логику.Единственная причина, по которой я использую позицию, заключается в том, что это единственная уникальная вещь в предмете, которую я могу найти.Кстати (не уверен, что это актуально), я передаю позицию элемента в качестве дополнительного в намерении между Activity A
и Activity B
.
Как я могу решить эту проблему или использовать обходной путь?Спасибо!
РЕДАКТИРОВАТЬ 1:
Facepalm. Просматривая комментарии, я понимаю, что удаление его (как я уже говорил ранее) ^^способ сделать это.Может ли кто-нибудь сказать мне, как это сделать тогда?
Этот код я использую для сохранения изображения:
private void setImage() {
if (loadPicture(getIntent().getStringExtra("position"), bitmap) != null) {
// Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show();
imageView.setImageBitmap(loadPicture(
getIntent().getStringExtra("position"), bitmap));
}
}
private void savePicture(String filename, Bitmap b, Context ctx) {
try {
// ObjectOutputStream bos;
FileOutputStream out;// = new FileOutputStream(filename);
out = ctx.openFileOutput(filename, Context.MODE_WORLD_READABLE);
// bos = new ObjectOutputStream(out);
b.compress(Bitmap.CompressFormat.JPEG, 40, out);
if (b.compress(Bitmap.CompressFormat.JPEG, 40, out) == true)
// Toast.makeText(this, "returned true",
// Toast.LENGTH_LONG).show();
// bos.flush();
// bos.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Приветствия.