서로 종속적 인 3 개의 화면 사이에서 탐색을 수행하고 있습니다.
활동 A에 테이블 행 목록이있는 테이블이 있습니다. 각 행은 테이블 행에서 데이터를 가져와 다음 화면으로 이동하는 onclick 리스너 이벤트가 있습니다. Activity B
Activity B는 Intent에서 데이터를 읽는 것으로 시작하여 해당 이미지 & 데이터 등을 가져오고 레이아웃을 작성합니다. In은 편집 텍스트에서 데이터를 읽고 Activity C로 전달되는 버튼을 가지고 있습니다.
활동 C는 또한 Intent의 데이터를 기반으로 레이아웃을 작성합니다.
매니 페스트 파일에서 상위 활동 구성을 사용하여 이러한 활동을 탐색했습니다.
이제 Activity C에서 Activity B의 내비게이션을 할 때, 컨트롤이 부모에서 하위가 아닌 상위에서 상위로 오는대로 Intent에서 데이터를 찾을 수 없어 충돌이 발생합니다.
나는 활동 B의 onCreate 기능이 다시 실행된다는 것을 알고 있습니다. 그래서 나는 활동 B의 onPause()와 onResume() 메소드를 유지하여 재실행을 보류했다. 그러나 운이 없다.
이런 종류의 시나리오를 처리하는 방법에 대해 조언 해 줄 수 있습니까?
편집 :
활동 B :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_activity);
getActionBar().setDisplayHomeAsUpEnabled(true);
source_activity = this.getIntent().getStringExtra("source_activity");
Bundle b = this.getIntent().getExtras();
if(b!=null)
DashBoardDisplay_l = b.getParcelable("obj");
Name_ref=DashBoardDisplay_l.getName();
}
활동 C : 활동 B는 활동 B에 돌아 오는 동안 그래서 이전 화면 활동 A.에서 오는 약간의 의도가 포함되어
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.activity_open_translate,R.anim.activity_close_scale);
setContentView(R.layout.point_log_activity);
Intent intent = getIntent();
String YourtransferredData = intent.getExtras().getString("ref_name");
Log.d(TAG, "ref name "+YourtransferredData);
Name=YourtransferredData;
Log.d(TAG, "name value "+Name);
getActionBar().setDisplayHomeAsUpEnabled(true);
new BackEndJob().execute();
}
액티비티 C에서 인 텐트에서 널 포인터 예외로 인해 데이터를 찾을 수 없습니다.
Dalija가 권고 한 Savedinstance를 사용하여 다시 탐색 스택에 표시 할 항목을 표시하는 옵션이 있습니다.
에서보다 자세한 내용을보실 수 있습니다. – Shvet
코드 스 니펫과 로그 추가 – VicJordan