我的实际应用程序设计的布局要复杂得多,其中包括带有自定义适配器的GridView,ListView等,我认为同样适用于基本TextView,因此在这里仅共享简单的代码。
我已经在Saving Android Activity state using Save Instance State处经历了漫长的讨论,并了解了(其中一些可能是假设)活动生命周期,SavedInstanceState的片段,优点/缺点,SharedPreferences等方面的许多知识。
但是我仍然找不到如何存储TextView的 DATA 及其 ATTRIBUTES 。在应用关闭,重新打开以及方向更改后,BackgroundColor都将保留。我上面提到的另一个线程建议使用SharedPreferences来存储即使在应用程序退出后仍然存在的数据,并且使用onSaveInstanceState,onRestoreInstanceState来存储临时数据,但是对于关闭应用程序时保存视图的属性textsize,backgroundcolor等没有什么特别的要求。
我假设TextView的文本是Data,而BackgroundColor是state,那么SharedPreferences和onSaveInstanceState应该都需要吗? 我还假定相同的解决方案适用于GridView和ListView的CustomAdapter,因为它基本上包含TextView作为其元素,或者我是否需要其他方法来保存和恢复存储数据,GridView元素的属性(TextView)?
下面的示例代码,其中三个TextView被动态创建并添加到LinearLayout中,并且在TextView的单击事件上,其Text,BackgroundColor将被更改。关闭应用程序以及更改方向后,应同时恢复这两个更改。
$upcomingSupportGroups = DB::table('participants')
->join('threads', 'participants.thread_id', '=', 'threads.id')
->join('support_groups', 'threads.counselling_application_id', '=', 'support_groups.id')
->where('participants.user_id', auth()->user()->id)
->orWhere('support_groups.counsellor_id', auth()->user()->id)
->where('support_groups.event_time', '>=', Carbon\Carbon::now())
->groupBy('support_groups.id')
->get();
答案 0 :(得分:0)
SharedPrefererences,应该用于存储少量数据。如果您必须存储更多金额,请考虑使用SQLite