How to save an activity's state?
本问题已经有最佳答案,请猛点这里访问。
如问题中所述,我想知道如何保存活动的状态。我的应用程序有一个产品列表,允许用户单击一个产品,开始第二个显示该产品所有信息的活动。在第二个活动中,用户可以通过按按钮"将产品添加到购物车"。当您按下按钮时,第三个活动开始。它是一个列表视图,显示添加的产品的名称和价格-如下面的代码所示。如何保存添加的数据,以便返回并添加另一个产品时,它会将其添加到已存在产品的下面的ListView中?
我希望问题是清楚的,如果不是,请问,我会补充任何需要。
事先谢谢:)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package activity_app; import java.util.ArrayList; import java.util.HashMap; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; public class shopping_cart extends ListActivity { private ListView lv; private Intent intent; private String name; private String price; ArrayList<HashMap<String, String>> oslist; private static final String PROD_PRICE ="price"; private static final String PROD_NAME ="name"; ListAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.shopping_cart_activity); getActionBar().setTitle("Ordered Products"); intent = getIntent(); name = intent.getStringExtra("PROD_NAME"); price = intent.getStringExtra("PROD_PRICE"); oslist = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map = new HashMap<String, String>(); map.put(PROD_NAME, name); map.put(PROD_PRICE, price); oslist.add(map); adapter = new SimpleAdapter(shopping_cart.this, oslist, R.layout.shoppingcart, new String[] {PROD_NAME, PROD_PRICE}, new int[] {R.id.name, R.id.Price}); setListAdapter(adapter); |
您需要将购物车数据存储到某个持久存储区。查看其他人提到的存储选项文档。
基本上,您需要将购物车项目保存到某个文件系统(sqlite db、文本文件、共享prefs)。当您的活动退出
另一种方法是通过使用