パスからイメージを削除する際に問題が発生しました。アプリケーションからもギャラリーから削除するのは本当に混乱しています 画像から画像を削除する際に問題が発生しました。ファイルの場所の外部メディアだけでなく、アクティビティからも削除するようにしました。イメージパスからイメージを削除する方法
3日から試してみると、解決策はまだ見つかりませんでした。私は、このJavaファイルに
public class FullScreenViewActivity extends Activity {
private Utils utils;
private FullScreenImageAdapter adapter, image;
private ViewPager viewPager;
Button btnClose, btnShare, btnDelete;
private static Context mContext;
ContentResolver contentResolver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen_view);
viewPager = (ViewPager) findViewById(R.id.pager);
utils = new Utils(getApplicationContext());
Intent i = getIntent();
int position = i.getIntExtra("position", 0);
adapter = new FullScreenImageAdapter(FullScreenViewActivity.this,
utils.getFilePaths());
viewPager.setAdapter(adapter);
// displaying selected image first
viewPager.setCurrentItem(position);
btnClose = (Button) findViewById(R.id.btnClose);
btnShare = (Button) findViewById(R.id.btnshare0);
btnDelete = (Button) findViewById(R.id.btndelete);
btnClose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
}
});
btnShare.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
File file = new File(adapter._imagePaths.get(viewPager
.getCurrentItem()));
Intent mShareIntent = new Intent(Intent.ACTION_SEND);
mShareIntent.setType("image/*");
mShareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
startActivity(Intent.createChooser(mShareIntent, "Shareith:"));
}
});
btnDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
deleteTmpFile(viewPager.getCurrentItem());
break;
case DialogInterface.BUTTON_NEGATIVE:
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setMessage("Delete this Photo?")
.setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
}
});
}
public void deleteTmpFile(int pos) {
//String Foldername = mContext.getResources()
// .getString(R.string.app_name);
/*
* String filepath = Environment.getExternalStorageDirectory().getPath()
* + "/" + Foldername + "/" +data.get(pos) ;
*/
File f = new File(adapter._imagePaths.get(viewPager
.getCurrentItem()));
//File f = new File(filepath);
if (f.exists()) {
f.delete();
deleteFileFromMediaStore(mContext.getContentResolver(), f);
// final Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
// mContext.getContentResolver().delete(uri,
// MediaStore.MediaColumns.DATA + " =?",
// new String[] { filepath });
notifyAll();
}
Toast.makeText(mContext, "Delete Successfully..", Toast.LENGTH_SHORT)
.show();
}
public static void deleteFileFromMediaStore(
final ContentResolver contentResolver, final File file) {
String canonicalPath;
try {
canonicalPath = file.getCanonicalPath();
} catch (IOException e) {
canonicalPath = file.getAbsolutePath();
}
final Uri uri = MediaStore.Files.getContentUri("external");
final int result = contentResolver.delete(uri,
MediaStore.Files.FileColumns.DATA + "=?",
new String[] { canonicalPath });
if (result == 0) {
final String absolutePath = file.getAbsolutePath();
if (!absolutePath.equals(canonicalPath)) {
contentResolver.delete(uri, MediaStore.Files.FileColumns.DATA
+ "=?", new String[] { absolutePath });
}
}
}
}
何が問題なのですか?そして、何がうまくいくのですか? – greenapps
削除ボタンをクリックするとアプリがクラッシュする –
このような場合、原因をLogCatで見つけることができます。ここに関連する部分を投稿してください。これを引き起こすコードの行を見つけなければなりません。そして私たちに教えてください。 – greenapps