Android 在活动之间保留ListView项

Android 在活动之间保留ListView项,android,listview,persistent,Android,Listview,Persistent,全部, 我确实环顾四周,搜索了stackoverflow,但我的问题没有得到回答,或者只是搜索错误 我有一个列表视图,它显示一个文本和按钮。单击此按钮时,我正在打开另一个活动,其中的列表与上一个活动的文本不同 现在,当我按下“后退”按钮时,我将返回到“活动1”。在这里,我可以再次按下同一行或不同行上的按钮,我应该转到“Activity2”,它需要将以前放入的文本保留在“listview\u Activity2”中,并添加“listview\u Activity1”中新选择的文本 我确实为列表视图

全部,

我确实环顾四周,搜索了stackoverflow,但我的问题没有得到回答,或者只是搜索错误

我有一个列表视图,它显示一个文本和按钮。单击此按钮时,我正在打开另一个活动,其中的列表与上一个活动的文本不同

现在,当我按下“后退”按钮时,我将返回到“活动1”。在这里,我可以再次按下同一行或不同行上的按钮,我应该转到“Activity2”,它需要将以前放入的文本保留在“listview\u Activity2”中,并添加“listview\u Activity1”中新选择的文本

我确实为列表视图和“Activity1”创建了一个自定义适配器,在第一次按下按钮时就可以正常工作。但是,在第二次按下时,应用程序不会保留第一个选定的文本

现在,无论我看到哪里,都可以通过按下按钮将项目添加到同一活动的列表视图中,或者保持列表视图项目状态。我根本不关心项目状态,我的项目来自另一个活动

有人能帮忙吗

代码如下:

private static List<Product> products;

@Override
public void onCreate(Bundle savedInstance)
{
    super.onCreate( savedInstance );
    products = new ArrayList<Product>();
    Intent intent = getIntent();
    Product product = intent.getParcelableExtra( "cart_product" );
    products.add( product );
    CartLineAdapter adapter = new CartLineAdapter( this, R.layout.cart_line, products );
    setContentView( R.layout.cart );
    ListView view = (ListView) findViewById( R.id.cart_items );
    view.setAdapter( adapter );
}
私有静态列表产品;
@凌驾
创建时的公共void(Bundle savedInstance)
{
super.onCreate(savedInstance);
products=新的ArrayList();
Intent=getIntent();
产品=意图。getParcelableExtra(“购物车产品”);
产品。添加(产品);
CartLineAdapter=新的CartLineAdapter(这个,R.layout.cart\u行,产品);
setContentView(R.layout.cart);
ListView视图=(ListView)findViewById(R.id.cart\u项目);
view.setAdapter(适配器);
}

您的数据需要有一些持久性。如果您只想在当前应用程序中保存它,那么您可以使用
静态
变量。创建一个类,该类包含一个
静态数组列表
或类似的内容,在第一个
活动
中从列表中选择一个项目后,您将向其中添加数据。然后每次转到第二个
活动
时,都可以使用该
静态数组列表中的数据填充列表

您的其他选项是将此数据存储在
SharedReferences
(可能不适合这种情况,但可能是这样)或
DB
,如果您希望在应用程序关闭时保持此数据

编辑

对于任何选项,您都可以覆盖
onBackPressed()


对于DB解决方案,是否可以按下“后退”按钮?我在第二个列表视图中有一个文本控件,用户将在其中输入数据(数量),因此我无法立即保存它。谢谢。我将使用DB解决方案。
@Override
public void onBackPressed()
{
    // save data here if it hasn't yet been saved
    super.onBackPressed();
}