2014-10-05 4 views
0

두 개의 클래스가 있습니다 및 EditActivity 다음은 갤러리에서 이미지를 가져 오는 내 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); 
    } 

} 

지금 나는 내가 전체를 사용하기 때문에 위의 논리를 사용하려는

@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; 
    } 
    } 

처럼 클릭 버튼에 EditActivity에 HomeActivity의 try/catchbmInImgbmOutImg를 사용하려면 의 코드는 btn_camera의 EditActivity에서 HomeActivity 클래스에 있지만, 출력이 표시되지 않습니다. 다른 로직도 환영합니다.

감사합니다

답변

-1

당신은 당신이 데이터를 저장하는 데 사용하고 EditActivity

에 액세스 할 수 HomeActivity.variableName를 사용하는 당신의 HomeActivity 클래스의 정적 변수를 사용할 수 있습니다
관련 문제