我有3個Activity類,一個父級和兩個子級。父類有一個靜態的TextView,我希望子類能夠使用它。Android:父級Activity中的靜態TextView和操作它的兩個子Activity類
我的想法是我將這個TextView作爲一個購物車計數器,並且由於它是靜態的,所以當用戶在活動之間切換時,我不必擔心刷新子類,因爲只有一個實例TextView來引用。
一些僞代碼來幫助說明:
public class ParentActivity extends AppCompatActivity {
protected static TextView cartCount;
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
...
cartCount = (TextView) actionLayout.findViewById(R.id.cart_count);
cartCount.setText(cartObject.getTotalAmountOfItems());
...
}
}
public class HomeActivity extends ParentActivity {
...
onItemClick
cartCount.setText("1") // user adds one item to the cart
}
public class CartActivity extends ParentActivity { // lists items currently in shopping cart
...
onItemClick
cartCount.setText("2") // user realizes they want two of the selected item
}
這幾乎是工作,只是當我點擊回按鈕返回HomeActivity(launchMode = singleTop),計數器是它是導航到前CartActivity,即使嘗試添加或刪除購物車中的物品,它仍然如此。 HomeActivity的刷新仍然需要爲了讓它開始反映正確數量的項目再次,這可以通過旋轉屏幕來完成。
這幾乎就好像靜態TextView變得固定在CartActivity上一樣,所以我在HomeActivity中看到的TextView不再是我在ParentActivity中聲明的TextView的真實表示。任何人都可以詳細說明在這種情況下幕後發生了什麼?