2014-10-05 33 views
0

我有兩個類HomeActivityEditActivity,下面是我的HomeActivity類的代碼,其中我從圖庫中獲取圖像並想解碼它,解碼後我想使用該類圖像作爲我在EditActivity按鈕功能中的輸入。如何在其他類中使用一個類別的數據輸出

HomeActivity

public class HomeActivity extends Activity implements OnClickListener { 
    private Button btnEdit, btnGallery; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 

     btnEdit = (Button) findViewById(R.id.btn_edit); 
     btnEdit.setOnClickListener(this); 

     btnGallery = (Button) findViewById(R.id.btn_gallery); 
     btnGallery.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
     Intent intent; 
     switch (view.getId()) { 
     case R.id.btn_edit: 
      intent = new Intent(); 
      intent.setType("image/*"); 

      intent.setAction(Intent.ACTION_GET_CONTENT); 

      startActivityForResult(
        Intent.createChooser(intent, "Select Photo"), 
        MyConstants.TAKE_PHOTO); 

      break; 

     } 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
    } 

    public void onActivityResult(final int requestCode, int resultCode, 
      final Intent data) { 
     System.out.println("Data come from: " + data); 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == MyConstants.TAKE_PHOTO) { 
      if (resultCode == RESULT_OK) { 
       Uri selectedImageUri = data.getData(); 
       String selectedImagePath = getPath(selectedImageUri); 
       try 
       { 
       InputStream is = HomeActivity.this.getContentResolver().openInputStream(selectedImageUri); 
       final Bitmap bmInImg = BitmapFactory.decodeStream(is); 
       mPhotoIntArray = new int[bmInImg.getWidth() * bmInImg.getHeight()]; 
       nPhotoIntArray = new int[bmInImg.getWidth() * bmInImg.getHeight()]; 
       bmInImg.getPixels(mPhotoIntArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight()); 
       mCannyOutArray = new int[bmInImg.getWidth() * bmInImg.getHeight()]; 
       final Bitmap bmOutImg = Bitmap.createBitmap(bmInImg.getWidth(), bmInImg.getHeight(), Config.ARGB_8888); 
       bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight()); 

       } 
       catch (IOException e) { 
        e.printStackTrace(); 
       } 

       // System.out.println("Image Path : " + selectedImagePath); 
       Intent intent = new Intent(HomeActivity.this, 
         PhotoEditorActivity.class); 
       intent.setData(Uri.parse(selectedImagePath)); 
       startActivity(intent); 
      } 
     } 

     else if (requestCode == MyConstants.APP_EXIT) { 
      if (resultCode == Activity.RESULT_OK) { 
       finish(); 
       System.exit(0); 
      } 

     } 
    } 

    public String getPath(Uri uri) { 
     String[] projection = { MediaStore.Images.Media.DATA }; 
     Cursor cursor = managedQuery(uri, projection, null, null, null); 
     int column_index = cursor 
       .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } 

} 

現在我想用bmInImgbmOutImg在HomeActivity的try/catch在EditActivity上的按鈕進行點擊喜歡

@Override 
    public void onClick(View view) 
    { 
     switch (view.getId()) { 
     case R.id.btn_camera: 
      negative(bmInImg.getHeight(),bmInImg.getWidth(), mPhotoIntArray, mCannyOutArray); 
      bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight()); 
      break; 
    } 
    } 

我想是因爲我用的是整體與上面的邏輯使用它代碼try/catch在HomeActivity類的EditActivity上的btn_camera點擊,但它沒有顯示output.Any其他邏輯也讚賞。

謝謝

回答

-1

你可以使用一個靜態變量在HomeActivity類,你用它來存儲數據,然後使用HomeActivity.variableName訪問它在EditActivity

相關問題