MainActivity.java
public class MainActivity extends AppCompatActivity {
// SecondActivity -> MainActivity Result
ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if(result.getResultCode() == RESULT_OK) {
String str = result.getData().getStringExtra("RESULT");
Log.d("ActivityResult", str);
}
if(result.getResultCode() == RESULT_CANCELED){
}
}
);
public void onStringDataSendButton(View v) {
Intent intent = new Intent(IntentActivity.this, SecondActivity.class);
intent.putExtra("RESULT", RESULT_OK);
intent.putExtra("TEXT", "성공");
mStartForResult.launch(intent);
}
public void onUriArrayDataSendButton(View v) {
ArrayList<Uri> imageUris = galleryAdapter.getImageUris();
Uri[] uris = new Uri[imageUris.size()];
for (int i = 0; i < imageUris.size() ; i++) {
uris[i] = imageUris.get(i);
}
Intent intent = new Intent();
intent.putParcelableArrayListExtra("images", uris);
}
public void onImageDataSendButton(View v) {
// Bitmap 이미지 -> ByteArray 변경해서 전송하는 방식
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.check_visiable);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
intent.putExtra("image", byteArray);
startActivity(intent);
}
}
SecondActivity.java
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// 일반 텍스트 받는쪽
Intent intent = getIntent();
int result = intent.getIntExtra("RESULT", 0);
String text = intent.getStringExtra("TEXT");
// MainActivity로 재전송
if (result == RESULT_OK) {
intent.putExtra("RESULT", "성공");
setResult(RESULT_OK, intent);
finish();
}
}
}
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// URI Array 데이터 받는쪽
if (result.getResultCode() == RESULT_OK) {
Intent intentData = result.getData();
ArrayList<Uri> images = intentData.getParcelableArrayListExtra("images");
Uri[] uris = new Uri[images.size()];
for (int i = 0; i < images.size() ; i++) {
uris[i] = images.get(i);
}
//........ uris를 받아서 로직 처리
} else {
}
}
}
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
ImageView imageView = findViewById(R.id.imageView);
// Bitmap 이미지 -> Byte Array 로 전송방식
if (result.getResultCode() == RESULT_OK) {
Intent intent = getIntent();
byte[] byteArray = getIntent().getByteArrayExtra("image");
Bitmap image = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
imageView.setImageBitmap(image);
}
}
}
'Android(Java)' 카테고리의 다른 글
[Java] ProgressDialog 로딩 시스템 UI (1) | 2024.02.27 |
---|---|
[Java] Parcelable을 이용한 객체 Intent 전달 (0) | 2024.02.27 |
[Java] WebView Wrapper Class (0) | 2024.02.27 |
[Android]안드로이드 xml에서 투명도 적용 (0) | 2024.02.22 |
[Java] ActivityResultLauncher 사용 (0) | 2024.02.21 |