簡體   English   中英

從另一個活動返回時,ArrayList為null

[英]ArrayList is null upon returning from another activity

我有一個要發送到另一個活動的項目的ArrayList。 ArrayList的用途是保存購物車之類的項目,而delete活動顯示用戶購物車中的項目並允許他們刪除項目。 除非從刪除活動返回,否則ArrayList為空。

用於onCreate的代碼:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // instantiating layout features
    priceEditText = (EditText) findViewById(R.id.priceEditText);
    addItem = (Button) findViewById(R.id.addItemButton);
    gps = (CheckBox) findViewById(R.id.locationCheckBox);
    tax = (EditText) findViewById(R.id.taxEditText);
    subTotal = (EditText) findViewById(R.id.subTotalTextEdit);
    total = (Button) findViewById(R.id.totalitemsButton);
    totalTextEdit = (EditText) findViewById(R.id.totalTextEdit);
    context = this;
    sTotal = 0.0;
    name = (EditText) findViewById(R.id.itemNameTextField);
    delete = (Button) findViewById(R.id.deleteItemButton);
    items = new ArrayList<Item>();

    // adding listeners
    addItem.setOnClickListener(click);
    total.setOnClickListener(done);
    delete.setOnClickListener(remove);
}

啟動新活動的代碼:

private OnClickListener remove = new OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(
                com.JPT3Productions.salestaxcalc.MainActivity.this,
                Delete.class);
        Bundle bundle = new Bundle();
        bundle.putSerializable("array", items);
        intent.putExtras(bundle);
        startActivity(intent);
    }
};

最后,收到意圖:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_delete);

    // Show the Up button in the action bar.
    setupActionBar();
    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    ArrayList<Item> items = (ArrayList<Item>) bundle.getSerializable("array");
    final TableLayout layout = (TableLayout) findViewById(R.id.tl);

顯示刪除活動時,您的活動可能會被破壞並重新創建。

您應該實現生命周期事件以保存實例數據,例如購物車,因此,如果重新創建活動,則將保留這些數據。

查看有關保存和還原活動狀態的文檔,以獲取有關如何執行此操作的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM