어제부터 한 가지 문제가있어 해결책을 찾을 수 없습니다. 내 탭 호스트의 하위 활동에서 variable
을 0
으로 설정하려고합니다. 기본적으로 나는이 상황이있다 :Android가 활동 시작시 값을 분명히합니다.
Activity A -- sends extra "something" to activity B (B is getting it)
Activity B -- starts Activity C
Activity C -- onButton click sends extra "something" to activity B and finish()
이 모든 것은 첫 번째 탭에서 발생합니다. 문제는 내가 탭을 변경하고 B 액티비티 A로 되돌아 갈 때 액티비티 A에서 보내는 액티비티와 상관없이 추가 액티비티 C가 보내는 값을 여전히 저장하고있는 것입니다. 예제 코드는 다음과 같습니다.
,369 :final int extra = getParent().getIntent().getIntExtra("SOMETHING", 0);
Log.e("", "extra : " + extra);
이 내가 활동 C에서 추가로 보내는 방법입니다
if (ownedCards != 0) {
ownedStampii.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent previewMessage = new Intent(getParent(), OwnedStampii.class);
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
previewMessage.putExtra("collection_id", collId);
previewMessage.putExtra("SOMETHING", 0); // this is what I'm trying to se to 0
parentActivity.startChildActivity("OwnedStampii", previewMessage);
}
});
}
이 내가 활동 B에 추가 읽는 방법입니다 -
활동 A는 B가 시작
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = getParent().getIntent();
intent.putExtra("SOMETHING", objectID); // objectId of category which will sort the data
getParent().setResult(RESULT_OK, intent);
finish();
}
});
나는 int extra =0
을 onResume()
, onRestart()
, onStop()
.. 등으로 설정하려고 시도했지만 여전히 작동하지 않습니다.
제안 사항이 변수를 0으로 설정하려면 어떻게해야합니까? TabGroupActivity
를 사용하는 동안
에 C에서 새로운
Intent
을 보낼 수 있습니다. 특히 활동 B의 'onCreate()', 활동 C를 여는 함수,'onActivityResult()'. 그럼 ... onCreate() 또는 onActivityResult()에서 "extra"를 읽나요? 당신의 질문도 꽤 혼란 스럽습니다 ... 이것은 A -> B -> C -> B -> A -> B와 같은 활동을 할 때 문제를 재현하는 순서입니까? 버튼 클릭을 통해 항상 활동을 변경합니까, 아니면 어느 시점에서 다시 누르십니까? 어느 시점에서? –