即使关闭应用程序,也可以保存和还原GridView的textview数据及其属性

时间:2018-11-19 17:16:11

标签: gridview textview state custom-adapter

我的实际应用程序设计的布局要复杂得多,其中包括带有自定义适配器的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();

1 个答案:

答案 0 :(得分:0)

SharedPrefererences,应该用于存储少量数据。如果您必须存储更多金额,请考虑使用SQLite