Я загружаю несколько изображений в свой GridView из галереи, до сих пор все работает нормально. Я удаляю нужные изображения из GridView, все работает нормально, но если я хочу загрузить снова после того, как я только что удалил свои фотографии, в моем GridView будут отображаться те же изображения, которые я только что удалил, и я не знаю, как я могу это исправить.
Если я перезапущу все приложение, все снова работает нормально, но если я снова удалю некоторые изображения, снова возникнет та же проблема, и если я перезапущу только это действие, ничего не изменится.
Вот мой результат onActivityResult после пользователь делает ACTION_PICK:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// get image from external storage
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE_EXTERNAL_IMAGE) {
Uri uri = data.getData();
InputStream inputStream;
OutputStream output;
// Find the SD Card path
File filepath = Environment.getExternalStorageDirectory();
int count2 = 0;
SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0);
count2 = settings.getInt("SNOW_DENSITY", 0); //0 is the default value
String paranteza1 = "(";
String paranteza2 = ")";
int count1 = new File("/mnt/sdcard" + nameAlbum).listFiles().length;
count1 = count1 + 1;
String nameImage = "Wallpaper_" + count1 + ".jpg";
for (int j = 0; j < listFile.length; j++) {
FileNameStrings[j] = listFile[j].getName();
if (FileNameStrings[j].equals(nameImage)) {
nameImage = "Wallpaper_" + count1 + paranteza1 + count2 + paranteza2 + ".jpg";
count2++;
settings = getSharedPreferences("YOUR_PREF_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("SNOW_DENSITY", count2);
editor.commit();
for (int i = 0; i < listFile.length; i++) {
FileNameStrings = listFile.getName();
if (FileNameStrings.equals(nameImage)) {
nameImage = "Wallpaper_" + count1 + paranteza1 + count2 + paranteza2 + ".jpg";
count2++;
settings = getSharedPreferences("YOUR_PREF_NAME", 0);
editor = settings.edit();
editor.putInt("SNOW_DENSITY", count2);
editor.commit();
}
}
}
}
count2++;
File dir = new File(filepath.getAbsolutePath()
+ nameAlbum);
// Retrieve the image from the res folder
// Create a name for the saved image
file = new File(dir, nameImage);
try {
inputStream = getContentResolver().openInputStream(uri);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, output);
output.flush();
output.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Toast.makeText(this, "Error! No SDCARD Found!", Toast.LENGTH_LONG)
.show();
} else {
// Locate the image folder in your SD Card
file = new File(Environment.getExternalStorageDirectory()
+ File.separator + nameAlbum);
if (file.isDirectory()) {
listFile = file.listFiles();
// Create a String array for FilePathStrings
FilePathStrings = new String[listFile.length];
// Create a String array for FileNameStrings
FileNameStrings = new String[listFile.length];
for (int i = 0; i < listFile.length; i++) {
// Get the path of the image file
FilePathStrings = listFile.getAbsolutePath();
// Get the name image file
FileNameStrings = listFile.getName();
// Locate the GridView in gridview_main.xml
grid = (GridView) findViewById(R.id.gridview);
// Pass String arrays to LazyAdapter Class
adapter = new GridViewAdapter(AlbumActivity.this, FilePathStrings, FileNameStrings);
// Set the LazyAdapter to the GridView
grid.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
}
Это мой код, который позволяет мне удалять файлы
case R.id.action_delete:
File filepath = Environment.getExternalStorageDirectory();
SparseBooleanArray checkedItemPositions = grid.getCheckedItemPositions();
int itemCount = grid.getCount();
for (int i = itemCount - 1; i >= 0; i--) {
if (checkedItemPositions.get(i)) {
File dir5 = new File(filepath.getAbsolutePath()
+ nameAlbum + FileNameStrings);
File file3 = new File(String.valueOf(dir5));
deleted = file3.delete();
deleteCache(this);
}
Подробнее здесь: https://stackoverflow.com/questions/328 ... oad-images
GridView Android для загрузки изображений ⇐ Android
Форум для тех, кто программирует под Android
1764366146
Anonymous
Я загружаю несколько изображений в свой GridView из галереи, до сих пор все работает нормально. Я удаляю нужные изображения из GridView, все работает нормально, но если я хочу загрузить снова после того, как я только что удалил свои фотографии, в моем GridView будут отображаться те же изображения, которые я только что удалил, и я не знаю, как я могу это исправить.
Если я перезапущу все приложение, все снова работает нормально, но если я снова удалю некоторые изображения, снова возникнет та же проблема, и если я перезапущу только это действие, ничего не изменится.
Вот мой результат onActivityResult после пользователь делает ACTION_PICK:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// get image from external storage
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE_EXTERNAL_IMAGE) {
Uri uri = data.getData();
InputStream inputStream;
OutputStream output;
// Find the SD Card path
File filepath = Environment.getExternalStorageDirectory();
int count2 = 0;
SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0);
count2 = settings.getInt("SNOW_DENSITY", 0); //0 is the default value
String paranteza1 = "(";
String paranteza2 = ")";
int count1 = new File("/mnt/sdcard" + nameAlbum).listFiles().length;
count1 = count1 + 1;
String nameImage = "Wallpaper_" + count1 + ".jpg";
for (int j = 0; j < listFile.length; j++) {
FileNameStrings[j] = listFile[j].getName();
if (FileNameStrings[j].equals(nameImage)) {
nameImage = "Wallpaper_" + count1 + paranteza1 + count2 + paranteza2 + ".jpg";
count2++;
settings = getSharedPreferences("YOUR_PREF_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("SNOW_DENSITY", count2);
editor.commit();
for (int i = 0; i < listFile.length; i++) {
FileNameStrings[i] = listFile[i].getName();
if (FileNameStrings[i].equals(nameImage)) {
nameImage = "Wallpaper_" + count1 + paranteza1 + count2 + paranteza2 + ".jpg";
count2++;
settings = getSharedPreferences("YOUR_PREF_NAME", 0);
editor = settings.edit();
editor.putInt("SNOW_DENSITY", count2);
editor.commit();
}
}
}
}
count2++;
File dir = new File(filepath.getAbsolutePath()
+ nameAlbum);
// Retrieve the image from the res folder
// Create a name for the saved image
file = new File(dir, nameImage);
try {
inputStream = getContentResolver().openInputStream(uri);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, output);
output.flush();
output.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Toast.makeText(this, "Error! No SDCARD Found!", Toast.LENGTH_LONG)
.show();
} else {
// Locate the image folder in your SD Card
file = new File(Environment.getExternalStorageDirectory()
+ File.separator + nameAlbum);
if (file.isDirectory()) {
listFile = file.listFiles();
// Create a String array for FilePathStrings
FilePathStrings = new String[listFile.length];
// Create a String array for FileNameStrings
FileNameStrings = new String[listFile.length];
for (int i = 0; i < listFile.length; i++) {
// Get the path of the image file
FilePathStrings[i] = listFile[i].getAbsolutePath();
// Get the name image file
FileNameStrings[i] = listFile[i].getName();
// Locate the GridView in gridview_main.xml
grid = (GridView) findViewById(R.id.gridview);
// Pass String arrays to LazyAdapter Class
adapter = new GridViewAdapter(AlbumActivity.this, FilePathStrings, FileNameStrings);
// Set the LazyAdapter to the GridView
grid.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
}
Это мой код, который позволяет мне удалять файлы
case R.id.action_delete:
File filepath = Environment.getExternalStorageDirectory();
SparseBooleanArray checkedItemPositions = grid.getCheckedItemPositions();
int itemCount = grid.getCount();
for (int i = itemCount - 1; i >= 0; i--) {
if (checkedItemPositions.get(i)) {
File dir5 = new File(filepath.getAbsolutePath()
+ nameAlbum + FileNameStrings[i]);
File file3 = new File(String.valueOf(dir5));
deleted = file3.delete();
deleteCache(this);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/32849833/gridview-android-upload-images[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия