0

全部,

我确实环顾四周并在stackoverflow上进行了搜索,但我的问题没有得到回答,或者我只是搜索不正确。

我有一个列表视图,它显示一个文本和按钮。单击此按钮时,我将打开另一个活动,其中不同的列表传递来自先前活动的文本。

现在,当我按下“返回”按钮时,我将返回“Activity1”。在这里,我可以在同一行或不同的行上再次按下按钮,我应该转到“Activity2”,该按钮需要将先前放置的文本保留在“listview_Activity2”中,并从“listview_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 );
}
4

1 回答 1

2

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

您的其他选择是将这些数据存储在SharedPreferences(对于这种情况可能并不理想,但也许),或者DB如果您希望它在应用程序关闭时持续存在。

编辑

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

@Override
public void onBackPressed()
{
    // save data here if it hasn't yet been saved
    super.onBackPressed();
}

存储选项

于 2013-06-21T01:05:45.403 回答