2011-08-09 2 views
0

en utilisant plusieurs codes disponibles dans tout le site, j'ai construit une petite application qui invoquerait l'intention Gallery et quand une image est sélectionnée, le chemin est rétabli.Android: Invoke Gallery via intention et sélectionnez une image

public class SDCardImagesActivity extends Activity { 
    final int REQ_CODE_PICK_IMAGE= 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.header); 
     Intent i = new Intent(Intent.ACTION_PICK, 
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(i, REQ_CODE_PICK_IMAGE); 
    } 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 

     switch(requestCode) { 
     case REQ_CODE_PICK_IMAGE: 
      if(resultCode == RESULT_OK){ 
       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 filePath = cursor.getString(columnIndex); 
       cursor.close(); 


       Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); 

       Toast.makeText(SDCardImagesActivity.this, "selected", 2000).show(); 
      } 
     } 

    } 
} 

Mais quand je lance ce programme, je me exception suivante

08-09 15:12:53.191: ERROR/AndroidRuntime(26694): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 

que quelqu'un peut me aider. Merci d'avance.

Répondre

0

Votre requête renvoie 0 lignes, c'est pourquoi vous obtenez une erreur CursorIndexOutOfBoundsException = en essayant d'accéder à la première ligne d'un curseur avec 0 lignes.

Avez-vous veillé à ce qu'ils soient des photos sur le support (carte SD)?

+0

yep il y a des images. quand je sélectionne une image seule cette exception est levée. Arrayoutofbound :( –

+0

c'était un problème de permission J'essayais d'accéder aux images que j'avais créées en utilisant mon application, et il semble qu'il n'y ait pas de privillage pour cela Quand j'essaye des images prises par une caméra native, ça fonctionne comme un charme. –