我被困在昨天的一個問題中,我無法找到解決方案。我試圖將一個variable
設置爲我的tabhost中的子活動,並將其設置爲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()
這一切都發生在第一個選項卡。 問題是,當我更改選項卡並返回到活動A而不是B時,無論是否從活動A發送它,額外的「東西」仍保存活動C發送的值。以下是一個示例代碼:
活動A - 啓動B:
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閱讀額外的:
final int extra = getParent().getIntent().getIntExtra("SOMETHING", 0);
Log.e("", "extra : " + extra);
這是我送額外的活動C:
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();
}
});
我試着在onResume()
,onRestart()
, onStop()
..上試着設置int extra =0
,等等它仍然沒有工作。
任何建議如何將此變量設置爲0?
我們需要看到更多的代碼來幫助你。特別是活動B的'onCreate()',然後打開活動C和'onActivityResult()'的函數。然後...你在'onCreate()'或者'onActivityResult()'中讀了「extra」嗎?你的問題也很令人困惑......這是在步行活動時重現問題的順序:A→B→C→B→A→B→你是否總是通過點擊按鈕來改變活動,或者你是否在某個時候回退?在哪一點? –