几个小问题

1. Gson解析的json字符串中如果有数组类型,在生成模型中声明时——

第一,要手动初始化列表实例,像这样:

public List<Models> models = new ArrayList<Models>();

如果只声明不初始化,解析完成后列表还是空值。

第二,不能用接口声明,如果像上面那行代码一样,解析完成后列表的大小是0。应该这样:

public ArrayList<Models> models = new ArrayList<Models>();

2. Android Studio只是不能开发JNI,不是不能用。要用JNI库的话只需要把so文件复制到libs文件夹下,然后在build.gradle文件的android标签里加入

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

即可。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "mlxy.toyou"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.+'
}
就像这样

3. 给EditText绑定OnKeyListener的时候要注意,onKey方法在按键按下时调用一次,抬起时还会调用一次,如果只做了键位的判断会导致同样的事做两遍。

解决办法很简单,不细说。

if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {

4. 要让ListView显示多种列表项类型不要紧,重写getItemViewType方法就可以,但是要注意,这个方法的返回值,也就是自己声明的列表项类型值要从0开始,不然会导致

java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 

暂时就这样。

原文地址:https://www.cnblogs.com/chihane/p/4672707.html