Daniil Vlasov
Daniil Vlasov

Reputation: 25

Saving path to image

There is a function, adding user image to my app, but I need image to use again, so I chose SQLite Database to save path to image, my database works correctly. So in OnClick method, app show DialogWindow, where user choose image from gallery:


choosePath.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                //Type - image:
                photoPickerIntent.setType("image/*");
                //Start activity, waiting for result 
                startActivityForResult(photoPickerIntent, Pick_image);
            }
        });

Then onActivityResult is called:

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

        switch (requestCode){
            case Pick_image:
                if(requestCode == RESULT_OK){
                    try {
                        final Uri imageUri = imageReturnedIntent.getData();
                        final InputStream imageStream = getContentResolver().openInputStream(imageUri);
                        final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                        Log.e("mLog", "onActivityResult: " + imageStream + " " +  imageReturnedIntent + " " + imageUri);

                        pathToImage = imageUri.toString();
                    } catch (FileNotFoundException e){
                        e.printStackTrace();
                    }
                }
        }
    }


But when I save path in SQlite:

ContentValues cv = new ContentValues();
                cv.put("description", description);
                cv.put("image_link", pathToImage);
                cv.put("category", category[0]);

                long res = mDb.insert("favourites", null, cv);
                if (res > -1) {
                    Toast.makeText(getApplicationContext(), "Шаблон добавлен в любимые", Toast.LENGTH_SHORT).show();

                } else {
                    Toast.makeText(getApplicationContext(), "Ошибка", Toast.LENGTH_SHORT).show();
                }

I get exception:

E/SQLiteDatabase: Error inserting description=dog image_link=null category=
    android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: favourites.image_link (code 1299 SQLITE_CONSTRAINT_NOTNULL)

I used debugger, but it didnt help me. Please help me to solve this problem!

Upvotes: 0

Views: 60

Answers (1)

Dharmender Manral
Dharmender Manral

Reputation: 1520

Correct your if condition, that causes your code not running inside if condition and getting pathToImage object null

 // you are matching here request code with result status
 if(requestCode == RESULT_OK)


 //It should be
 if(resultCode == RESULT_OK)

Upvotes: 1

Related Questions