MainActivity.java 파일에
// 내가 실행한 액티비티로부터 데이터를 다시 받아올때 작성하는 코드
public ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == RESULT_OK) {
int index = result.getData().getIntExtra("index", 0);
Employee employee = (Employee) result.getData().getSerializableExtra("employee");
employeeList.set(index, employee);
adapter.notifyDataSetChanged();
}
}
});
ActivityResultLauncher를 만들고 onActivityResult안에 원하는 코드를 작성한다.
EmployeeAdapter.java 파일에
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int index = getAdapterPosition();
Employee employee = employeeList.get(index);
Intent intent = new Intent(context, EditActivity.class);
intent.putExtra("employee", employee);
intent.putExtra("index", index);
//context.startActivity(intent);
((MainActivity) context).activityResultLauncher.launch(intent);
}
});
카드뷰 클릭할 때 activityResultLancher를 통해서 실행시킨다.
EditActivity가 데이터를 받고 finish하면 MainActivity가 데이터를 받는다.
'안드로이드' 카테고리의 다른 글
안드로이드 FloatingActionButton 만들기 (0) | 2022.07.19 |
---|---|
안드로이드 ActionBar menu 사용하는 방법 (0) | 2022.07.19 |
안드로이드 TextWatcher 사용법 (0) | 2022.07.18 |
안드로이드 다른 액티비티로 데이터 전달시 , 클래스의 객체를 전달하는 방법 (0) | 2022.07.15 |
RecyclerView와 Adapter를 이용하여 리스트를 화면에 표시하는 방법 (0) | 2022.07.14 |