Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从其他活动返回时,ArrayList为空_Java_Android_Arrays_List_Nullpointerexception - Fatal编程技术网

Java 从其他活动返回时,ArrayList为空

Java 从其他活动返回时,ArrayList为空,java,android,arrays,list,nullpointerexception,Java,Android,Arrays,List,Nullpointerexception,我有一个将要发送到另一个活动的项目列表。ArrayList的用途是像购物车一样保存项目,删除活动显示用户购物车中的项目,并允许用户删除项目。除了从删除活动返回外,ArrayList为空 onCreate的代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main

我有一个将要发送到另一个活动的项目列表。ArrayList的用途是像购物车一样保存项目,删除活动显示用户购物车中的项目,并允许用户删除项目。除了从删除活动返回外,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);
}
最后,接收意图:

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);
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delete);
//在操作栏中显示“向上”按钮。
setupActionBar();
Intent=getIntent();
Bundle=intent.getExtras();
ArrayList项=(ArrayList)bundle.getSerializable(“数组”);
最终的TableLayout布局=(TableLayout)findViewById(R.id.tl);

显示“删除”活动时,您的活动可能会被销毁并重新创建

您应该实现生命周期事件来保存实例数据,如购物车,这样在重新创建活动时它将被保留


查看上的文档以了解如何执行此操作。

我相信删除某些元素后不会更新数组列表。在检索您在该类中操作的另一个类中感兴趣的数组列表后,将在其中检索该列表,以便更新内容,您需要调用set方法来更新内容。这就是至少,我认为这是错的。你认为我应该在我的Items类中创建ArrayList实例变量并添加方法来操作ArrayList吗?我认为是的-这将是一种方法。但是,根据你所描述的,这个数组列表应该是一个类变量,我的意思是它必须是“静态的”。我会检查它!你知道吗您认为在my Items类中添加ArrayList实例变量会有所帮助吗?您可以这样做,但这将是一个静态变量,而不是实例变量。在这种情况下,您可以在活动中将其设置为静态变量。一般来说,这不是一个好的做法,因为从理论上讲,您可以在后面的stac上有多个不同的活动实例k随时。(当然,这也是可配置的)我会调整它,希望我能找到它。谢谢你的帮助,我很感激。
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);