10.20 groovy寫安卓,如何保存fragment的狀態

本文详细介绍了使用Groovy编写Android代码时需注意的事项,并提供了SDK下载链接和一个遵循Google Material Design设计原则的开源源代码。此外,还分享了Gradle配置、中文文本处理库、中文情感分析库的使用方法,以及解决Android SDK编码问题的解决方案。同时,通过实例展示了如何在Android应用中保存和恢复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设计原则安卓源代碼
https://github.com/zzhoujay/Gank4Android

參考:
http://m.blog.youkuaiyun.com/blog/zhjali123/45128187

Gradle: 错误:编码 GBK 的不可映射字符的解決方案:

在项目下的build.gradle下添加以下代码即可解决

tasks.withType(Compile) {
options.encoding = “UTF-8”
}
Gradle2.0+环境下需将Compile改为JavaCompile

tasks.withType(JavaCompile) {
options.encoding = “UTF-8”
}

Mac下批量将GBK转换UTF-8编码

http://weijun.me/post/develop/2015-07-29
原理:
mac shell
iconv -f GBK -t UTF8 “ path">" {ipath.java_gbk}.java”

中文文字感情分享,java開源庫

http://www.oschina.net/p/semanticanalysis
http://git.oschina.net/www.feit.com/SemanticAnalysis
使用方式:

1.自行编译src 或者直接下载dist中的zg-sa.jar
2.需要引用的第三方的包位于lib文件夹中

DEMO:

?
1
2
3
Analysis analysis = new Analysis();
System.out.println(“1: ” + analysis.parse(“这是一个普通评论”).getCode());
System.out.println(“2: ” + analysis.parse(“中国加油!”).getDisplay());
输出:

1: 0
2: 正面

正面:1
负面:-1
中性:0

android 6.0 ssl3_get_server_key_exchange:BAD_DH_P_LENGTH

http://bbs.youkuaiyun.com/topics/391843187
出現這個原因是因為:
android自家寫的BoringSSL不在支持openssl的漏洞導致logjam attack

保存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;
}

參考:
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2648.html
http://inthecheesefactory.com/blog/fragment-state-saving-best-practices/en
一個有demo的開源地址:
https://github.com/nuuneoi/StatedFragment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值