wawanopoulos :
나는 다음과 같은 간단한 시나리오를 가지고 :
- 한 활동이라고 ListCarsActivity.kt 자동차의 목록이 표시됩니다. 사용자가 FloatingActionButton 클릭하면라는 또 다른 활동 열립니다 AddCarActivity.kt을
- 상의 사용자가 클릭하면 추가 자동차 버튼, 나는 추가 된 자동차가 이제 표시되는 초기 활동 ListCarsActivity.kt에 갈 새로운 의도를 시작합니다.
문제 : 지금부터, 나는 뒤로 버튼을 클릭하면 ListCarsActivity는 두 번째로 표시됩니다.
어떻게 역사 스택에서 ListCarsActivity의 이전 항목을 지우려면?
Rakshit Nawani :
당신의 전화 AddCarActivity.kt 당신의 내부에 아래와 같은 활동을 ListCarsActivity.kt
val intent = Intent(mContext, AddCarActivity.class);
startActivityForResult(intent, 1); //Use any request code
지금에 startActivityForResult가하는 일 위의 코드가 다른 활동이나 소스에서 데이터를 다시받을 의도라는 것이다 (등 카메라, 연락처, 등)
이제 모든 일이 당신에 완료되면 AddCarActivity.kt 모든 아래 수 있습니다 의도 결과 등을 얻을 수
Intent intent = getIntent();
intent.putExtra("key", data); // if you wanted to get data
setResult(RESULT_OK, intent);
finish();
그리고 당신의 내부 ListCarsActivity.kt 당신은 추가해야 하여 onActivityResult 에서 데이터를 얻을 것이다 AddCarActivity.kt을
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 1) { //Your request code here
Object obj = data.getParcelableExtra("key");
//Do as per your needs
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
첫 번째 활동에서 새로 추가 된 데이터 등을 반환하기를 원한다면이, 그것은 제 3 자 libs와의 사용없이 인출 할 수있다.
그것을 시도하고 당신을 위해 일했다면 알려 않습니다.