1

この方法を使用して、ギャラリーからインポートした画像のパスを保存しようとしています:

case R.id.media:
        Intent i = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

        startActivityForResult(i, RESULT_LOAD_IMAGE);
        return true;

アクティビティの結果メソッドは次のとおりです。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        final Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = (cursor.getString(columnIndex));
        cursor.close();
        mImage = picturePath;
        ImageView imageView = (ImageView) findViewById(R.id.note_image);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
        imageView.setClickable(true);
        imageView.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent viewImageIntent = new Intent(android.content.Intent.ACTION_VIEW, selectedImage);
                        startActivity(viewImageIntent);
                    }
                });

    }


}

そして、これが populate フィールド メソッドです。

mImage =(note.getString(
                note.getColumnIndexOrThrow(NotesDbAdapter.KEY_IMAGE)));

しかし、これは機能していません。パスが保存されず、アクティビティを閉じてアクティビティを再度開始すると、画像が消えます。どうすればこれを修正できますか?

4

0 に答える 0