2013-01-05 91 views
0

我有兩個活動A,B的Android onActivityResult查詢

從活動A,我打開我的畫廊,我想,當從圖庫中選擇圖片就應該去活動B,而不是活動C.

這可能嗎?

share_picture.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 

       Intent choosePic = new Intent(Intent.ACTION_PICK, 
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
       startActivityForResult(choosePic, LOAD_IMAGE_GALLERY); 

      } 
     }); 

    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == LOAD_IMAGE_GALLERY && resultCode == RESULT_OK 
       && 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]); 
      picturePath = cursor.getString(columnIndex); 



//I WANT TO CALL ACTIVITY B FROM HERE.. THAT AFTER THE PICTURE IS SELECTED IT SHOULD GO ON ACITIVITY B AND NOT ON A. 



     } 
    } 

感謝

回答

0

放在意圖額外的filePathColumn。 Finish Activity C; 並有意向致電Activity;

0

只是寫在onActivityResult這個代碼後picturePath = cursor.getString(columnIndex);

// used to show HD images 
    BitmapFactory.Options bounds = new BitmapFactory.Options(); 
    // divide bitmap to 4 sample size it can be 2rest(2,4,8 etc) 
    bounds.inSampleSize = 4; 
    // get bitmap from bounds and file path 
    Bitmap bmp = BitmapFactory.decodeFile(filePath, bounds); 
    imageView1.setImageBitmap(bmp); 

現在,這裏寫Intent代碼

Intent intent= new Intent(A.java,B.class); 
    startActivity(intent); 
0

你只需要通過意圖

onActivityResult()ActivtyA傳遞的意圖, ActivityB通過 picturePath

ActivityA.java

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
//Insert it once you got the picturePath through Content Resolver 
picturePath = cursor.getString(columnIndex); 
Intent forwardToB=new Intent(getApplicationContext(),ActivityB.class); 
forwardToB.putExtras("PATH",picturePath); 
startActivity(forwardToB); 
} 

ActivityB.java

Intent i=getIntent(); 
String pathToImage=i.getStringExtra("PATH"); 

       OR 

Bundle extras = this.getIntent().getExtras(); 
if (extras != null) 
{ 
String value = extras.getString("PATH"); 
} 

現在你可以做任何一次pathToImage裏面你ActivityB