Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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 - Fatal编程技术网

Java 如何从单独活动中的一个活动修改ArrayList

Java 如何从单独活动中的一个活动修改ArrayList,java,android,Java,Android,如何从单独的活动向我的阵列列表添加更多汽车 因为我有这样的东西: private List<Car> getData() { List<Car> cars = new ArrayList<Car>(); cars.add(new Car("Dodge", "Viper")); cars.add(new Car("Chevrolet", "Corvette")); cars.add(new Car("Aston Martin", "Vanquish"

如何从单独的
活动
向我的
阵列列表
添加更多
汽车

因为我有这样的东西:

 private List<Car> getData() {

 List<Car> cars = new ArrayList<Car>();

cars.add(new Car("Dodge", "Viper"));

cars.add(new Car("Chevrolet", "Corvette"));

cars.add(new Car("Aston Martin", "Vanquish"));

cars.add(new Car("Lamborghini", "Diablo"));

cars.add(new Car("Ford", "Pinto"));

return cars;

}
private List getData(){
List cars=new ArrayList();
添加(新车(“道奇”、“毒蛇”);
添加(新车(“雪佛兰”、“克尔维特”);
添加(新车(“阿斯顿马丁”,“征服”);
添加(新车(“兰博基尼”、“暗黑破坏神”);
添加(新车(“福特”、“平托”);
返回车辆;
}

但cars只是一个例子,我在一个应用程序中使用了textswitcher,我想从textswitcher中获取文本,并将其作为listview的其他活动中的新项放置。

只需将列表设为类变量,并使用addCar函数即可

public void addCar(String make,String model){
      cars.add(new Car(make,model));
}
并更改getData()

private List getData(){
addCar(“道奇”、“毒蛇”);
addCar(“雪佛兰”、“克尔维特”);
等
返回车辆;
}

在您的其他活动中,只需调用addCar(make,model)

cars
放入intent,第二个
活动开始时使用
putExtra()
。然后用
getExtra()
检索它,并添加您想要的汽车。

不能保证在您离开后,另一个
活动将存在于内存中(因为如果内存资源变少,系统可能会销毁它)。您应该将数据保存到永久性存储(即数据库或
共享参考
),或者将数据作为
意图
额外传递。

基本上,您需要将对象传递给另一个
活动
,以便使用
意图
进行修改然而,这似乎非常错误。我建议您重新考虑如何在
活动
之外将
汽车
添加到
阵列列表

正如Harmeet Singh所提到的,您可能希望创建一个
sqlite
表来容纳所有
汽车。然后您可以让您的
列表视图
有一个查看该表的
光标或适配器
。这将允许您从任何地方添加
汽车
,并且将更加灵活和更好地练习

这里有两篇文章讨论了如何将对象作为
意图
传递给其他
活动
,但我不建议您继续沿着这条路实现您的要求。使用
sqlite
和数据库表


  • 我建议您使用数据库
    sqllite
    或共享公共资源
    xml
    文件或任何永久存储,这不是存储的方式,因为这种类型的存储是易失的

    如果内存在任何情况下被清除,所有数据都将被清除


    看看你到底想编辑什么?我想添加新数据,例如:cars。添加(…)是的,你可以使用io流。修复了他的问题,现在应该更容易了。@user1560197我想你应该使用像
    sqllite
    这样的数据库进行永久存储,这不是方法。在第二个
    活动中
    他需要第一个活动的引用,不是吗?是的,应该不会有问题。虽然我不知道他的类/代码是什么样子。他没有说明任何约束条件,但汽车只是一个例子,我在一个应用程序中使用了textswitcher,我想从textswitcher中获取文本,并将其作为新项目放入listview的其他活动中。您确实应该查看
    sqlite
    ,并为您的数据创建一个表。请看我的答案以了解更多细节。试图做到你所说的是不好的做法,改变和实施会是一件非常头疼的事情。
        private List<Car> getData() {
    
                addCar("Dodge", "Viper");
                addCar("Chevrolet", "Corvette");
                etc...
    
            return cars;
    
        }