我正在开发一款应用程序,可让您对专业高尔夫球手进行评分,并输入您认为此高尔夫球手的优缺点。有一个EditText将String数据保存到Arraylist,还有一个Ratingbar,它将int值保存到它自己的Arraylist中。
我想允许用户输入他们的数据,然后在另一个活动上,有按钮或某种类型的视图,允许用户点击并打开其中一个已完成的会话以供查看。怎么办呢?
答案 0 :(得分:1)
有几种方法,取决于您需要保留信息的时间长度,以及您希望获得信息的复杂程度。如果您只想一次传递此ArrayList
,则在开始新活动时将其添加到意图中:
Intent myIntent = new Intent(this, someOtherActivity.class);
intent.putStringArrayListExtra("values",myList);
然后在新活动的onCreate
中,检索数据:
myList = getIntent().getStringArrayListExtra("values");
// Do stuff
如果您想要保留一组数据,即使用户重新启动手机,也可以使用SharedPreferences
,这非常简单。您可以在here上阅读更多内容。
如果您有多组数据,并且这些数据保证很小,性能不是问题,并且您愿意在每次与它交互时将整个数据集加载到内存中,然后您可以保存它在内部或SD卡上的平面文件。更多关于here。
如果您有多组数据,并且上述条件不正确,那么您可能希望将其存储在数据库中。有两种基本方法:直接与SQLite数据库连接,或构建内容提供程序。前者更易于设置,但难以维护。后者使得正常工作更加烦人,但它更易于维护,并具有显着的优势,例如与listviews
的轻松集成以及与其他应用程序共享该数据的能力。无论哪种方式,这些都不是微不足道的问题,我建议您查看databases和content providers的开发人员指南,并查看两者的教程。实现它们更适合博客文章中的帖子或章节而不是Stack Overflow答案。