2014-12-22 2 views
0

У меня есть код, в котором я могу выбрать любое изображение из галереи и вложить его в свою деятельность, но я хочу, чтобы то же самое для любых mp3-файлов или любых текстовых файлов, как при прикреплении.Как выбрать любые файлы из галереи

Это мой код: // b1 - моя кнопка.

b1.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
      Intent i = new Intent(
         Intent.ACTION_PICK, 
         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 


       startActivityForResult(i,SELECT_PHOTO); 
      } 
     }); 

// И возвращение результата из галереи:

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

      if (requestCode == SELECT_PHOTO && resultCode == RESULT_OK && null != data) { 

       Uri selectedImage = data.getData(); 

       System.out.println("Path="+selectedImage); 
       String[] filePathColumn = {  MediaStore.Images.Media.DATA,MediaStore.Audio.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(); 

      Bitmap bitmap=BitmapFactory.decodeFile(picturePath); 
      img.setImageBitmap(bitmap); 

      } 

     } 

ответ

0

Вы можете сделать для MP3

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT); 
pickMedia.setType("audio/*"); 
startActivityForResult(pickMedia,1); 
0

Используйте этот код:

b1.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
        startActivityForResult(i, RESULT_LOAD_IMAGE); 

       } 
      }); 

// And returning result from Gallery: 

if (requestCode == RESULT_LOAD_IMAGE && null != data) { 
      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(); 
      ImageView imageView = (ImageView) findViewById(R.id.register_photo); 
      imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
      }