当你编辑某Text视图时可能会打断当前编辑切换到另外的活动中,如果要持久你的编辑状态那么应该在Activity.onPause()里面做文章, 例如:
@Override
protected void onPause() {
super.onPause();
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putString("text", mSavedEditText.getText().toString());
editor.putInt("selection-start", mSavedEditText.getSelectionStart());
editor.putInt("selection-end", mSavedEditText.getSelectionEnd());
editor.commit();
}
当试图重新获得焦点时 需在Activity.onResume中操作 如下:
@Override
protected void onResume() {
super.onResume();
SharedPreferences prefs = getPreferences(0);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
mSavedEditText.setText(restoredText, TextView.BufferType.EDITABLE);
int selectionStart = prefs.getInt("selection-start", -1);
int selectionEnd = prefs.getInt("selection-end", -1);
if (selectionStart != -1 && selectionEnd != -1) {
mSavedEditText.setSelection(selectionStart, selectionEnd);
}
}
}
分享到:
相关推荐
在Android应用开发中,数据持久化是至关重要的一个环节,它允许应用程序在用户退出或设备重启后仍能保存和恢复数据。以下将详细介绍Android数据持久化的四种主要方式:SharedPreferences、内部存储、外部存储以及...
《Android持久化技术:ORMLite库的深度解析》 在Android开发中,数据持久化是一项不可或缺的技术,它使得应用程序能够保存和恢复数据,即使在应用关闭后也能保持数据的状态。ORM(Object-Relational Mapping)作为...
在Android开发中,应用的状态保存和恢复是一个至关重要的概念,特别是在用户离开应用或者系统需要回收内存时。这个程序示例,"Android-一个简单的程序用来测试Android应用状态保存和恢复",旨在帮助开发者理解如何...
3. **数据持久化**:状态管理不仅涉及内存中的数据,还需要将这些状态保存到本地存储,以便在应用重启或数据刷新后恢复。 4. **API封装**:StatusManager提供了一套简洁易用的API,使得开发者可以方便地调用点赞、...
当我们谈论“android fragment 保存状态”,核心问题通常集中在如何在Fragment的状态发生变化时(例如屏幕旋转或系统内存回收)保留其数据和UI状态。 Fragment的生命周期中,有两个关键点与状态保存密切相关:`...
在Android开发中,有时我们需要确保某些代码块能够定期或按需执行,并且这些代码需要具有持久性,即使在应用关闭后也能继续作用。这通常涉及到数据存储、后台服务或者定时任务。本文将深入探讨如何在Android平台上...
在Android应用开发中,数据持久化是一个至关重要的环节,它使得应用程序可以保存并恢复用户数据,即使在应用关闭或设备重启后也能保持状态。本文将详细介绍如何在Android中使用ORM库ORMLite来实现数据持久化,特别是...
- **数据持久化**:如果需要在应用关闭后保存用户的播放历史或偏好设置,可以使用SharedPreferences存储简单数据,或者使用ContentProvider结合SQLite数据库。 - **网络请求**:对于在线音乐服务,需要进行网络请求...
总的来说,开发这个"Android扑克小游戏"涉及到的知识点包括:Android Studio的使用、Java编程基础、Android UI设计与事件处理、Activity生命周期管理、数据持久化等。通过实际项目的实践,开发者不仅可以深入理解...
7. **数据持久化**:如果应用需要记住用户的播放列表或偏好设置,你可以使用SharedPreferences或SQLite数据库来存储这些信息。 8. **事件监听和回调**:学习如何设置MediaPlayer的监听器,以便在播放事件(如开始、...
7. **存储与持久化**:游戏进度、用户设置等数据需要保存,Android提供了SharedPreferences、SQLite数据库等机制进行数据存储。 8. **游戏测试**:Android Studio提供了丰富的调试工具,如Logcat用于查看日志,...
- **Activity生命周期**:理解Activity的启动、暂停、恢复、销毁等状态,是编写稳定应用的基础。 - **Intent机制**:Intent用于启动Activity、Service,或传递数据,是Android应用内部通信的重要方式。 - **布局...
4. Session:在Hibernate中,Session是数据库连接的代理,负责管理对象的状态。在Android应用中,Session对象用于执行CRUD操作。 5. Query:通过HQL(Hibernate查询语言)或Criteria API,开发者可以构建复杂的查询...
持久化技术则是提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换, Android系统中主要提供了3种方式用于简单地实现数据持久化功能, 即文件存储, SharePreference存储, 以及数据库存储. 当然你也可以将数据...
Android-screen-monitor是一款用于实时监控Android设备屏幕状态的工具,它的源码为我们提供了一个深入了解Android系统级别的屏幕监控机制的机会。这篇文章将详细探讨该源码中的关键知识点,帮助开发者更好地理解和...
- **状态机**:游戏通常有多个状态(如启动、暂停、游戏进行中、结束等),状态机设计模式用于管理这些状态的切换。 - **事件驱动**:游戏中的用户输入、碰撞检测等事件,通过事件监听器来响应。 3. **图形与动画...
在“状态栏显示进度”的实现上,开发者通常会利用通知中心或者自定义视图在状态栏上创建一个持久化的通知。这个通知不仅会告知用户有新的版本待更新,还会实时显示当前的下载进度。例如,当用户点击更新后,状态栏的...
在Android开发中,通常会将不同功能的代码分门别类地放在不同的Java或Kotlin类文件中,例如:Activity(负责UI交互)、Adapter(处理数据展示)、Model(存储游戏状态)等。此外,可能还会包含资源文件(如XML布局...
- Notification API用于在状态栏显示提醒,GCM(现在称为Firebase Cloud Messaging, FCM)用于实现应用后台消息推送。 以上只是Android API文档中部分核心知识点的概述,实际文档内容还包括图形绘制、动画、安全性...
6. **通知(Notification)**:Android的通知系统允许应用在状态栏显示提醒。了解如何创建、管理和自定义通知,是提供及时信息和保持用户互动的重要手段。 7. **异步处理**:Android应用的UI线程不能进行耗时操作,...