10.20 groovy寫安卓,如何保存fragment的狀態
groovy寫安卓代碼注意事項:下載sdk:http://groovy-lang.org/download.html apply plugin: 'com.android.application'
buildscript { repositories { jcenter() }
dependencies { classpath 'com.android.tools.build:gradle:1.3.0' classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6' }
}
apply plugin: 'groovyx.grooid.groovy-android'
dependencies { compile 'org.codehaus.groovy:groovy:2.4.3:grooid' compile('org.codehaus.groovy:groovy-json:2.4.3') { transitive = false }
}
一個groovy寫的遵循Google Material Design设计原则安卓源代碼 參考: Gradle: 错误:编码 GBK 的不可映射字符的解決方案:在项目下的build.gradle下添加以下代码即可解决 tasks.withType(Compile) { tasks.withType(JavaCompile) { Mac下批量将GBK转换UTF-8编码http://weijun.me/post/develop/2015-07-29 中文文字感情分享,java開源庫http://www.oschina.net/p/semanticanalysis 1.自行编译src 或者直接下载dist中的zg-sa.jar DEMO: ? 1: 0 正面:1 android 6.0 ssl3_get_server_key_exchange:BAD_DH_P_LENGTHhttp://bbs.csdn.net/topics/391843187 保存fragment狀態activity裡面這樣寫: @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.contentContainer,MainFragment.newInstance())
.commit();
}
}
fragment里面这样写: Bundle savedState;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Restore State Here
if (!restoreStateFromArguments()) {
// First Time running,Initialize something here
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Save State Here
// 這裡是防止旋轉屏幕是出現的狀態丟失問題
saveStateToArguments();
}
@Override
public void onDestroyView() {
super.onDestroyView();
// Save State Here
saveStateToArguments();
}
private void saveStateToArguments() {
savedState = saveState();
if (savedState != null) {
Bundle b = getArguments();
b.putBundle(“internalSavedViewState8954201239547”,savedState);
}
}
private boolean restoreStateFromArguments() {
Bundle b = getArguments();
savedState = b.getBundle(“internalSavedViewState8954201239547”);
if (savedState != null) {
restoreState();
return true;
}
return false;
}
/////////////////////////////////
// 取出状态数据
/////////////////////////////////
private void restoreState() {
if (savedState != null) {
//比如
//tv1.setText(savedState.getString(“text”));
}
}
//////////////////////////////
// 保存状态数据
//////////////////////////////
private Bundle saveState() {
Bundle state = new Bundle();
// 比如
//state.putString(“text”,tv1.getText().toString());
return state;
}
參考: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- delphi – msbuild:如何选择应用程序商店进行配置
- 在Delphi7中调试COM+
- 在ValidatePostSize.php第22行laravel中的PostTooLargeExce
- 在VB.NET中将布尔值转换为整数
- protoc-gen-lua message之间相互引用问题 导致 upvalue 
- go语言 grequests+goquery 简单爬虫,使用多协程并发爬取
- perl – Moose如何在$undef时更改属性值?
- delphi android 录像(使用了JMediaRecorder,MediaRecorder
- 编写服务端程序的要点
- VB 源码 产生任意数之间随机数,支持负数