2015年7月28日 星期二

[Android] ScrollView 嵌套 ListView

預設 ListView 只會顯示一個子項,在 ScrollView 添加屬性即可:

android:fillViewport="true"

參考資料:http://www.oschina.net/question/163910_27133



⚠ 實際測試只有 ListView 也可以捲動。

此外,ScrollView 搭配 SwipeRefreshLayout 會發生任何時候下拉都會更新。 但是拿掉 ScrollView ,就只有在最頂端的時候下拉才會更新。

<android.support.v4.widget.SwipeRefreshLayout ...>
   <ScrollView ...>
      <ListView ...>
      </ListView>
   </ScrollView>
</android.support.v4.widget.SwipeRefreshLayout>

Android Studio 1.2.1.1
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"

    com.android.support:support-v4:22.2.+

2015年7月24日 星期五

[Android Studio] 使用 Lombok

Lombok 是在 POJO 寫些注解,然後在編譯時期幫忙產生冗余代碼。

在 build.gradle 設置:

dependencies {
    ...
    compile 'org.projectlombok:lombok:1.16.+'
}

在 Android Studio 編譯時,會出現:

    error: package javax.annotation does not exist
查過網路資料,需要先安裝 Lombok Plugin,再在 Project 根目錄建立 lombok.config,並且設定:
lombok.addGeneratedAnnotation = false

參考資料:https://projectlombok.org/setup/android
參考資料:StackOverflow: How to set up compile library in android studio. LOMBOK

Android Studio 1.2.1.1
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"

[Android] ActiveAndroid 入門

ActiveAndroid 是輕量型 ORM 可以存取 SQLite。 只要幾個步驟就可以簡單使用。

在 build.gradle 設置:

repositories {
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

dependencies {
    ...
    compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
}

在 AndroidManifest.xml 指定啓動點:

<manifest ...>
    <application android:name="com.activeandroid.app.Application" ...>
    </application>
</manifest>

定義 POJO:

@Table(name = "USER")
public class User extends Model
{
    @Column(name = "NAME")
    private String name;

    public User() {}

    public User(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }
}
List<User> data = new Select().from(User.class).execute();

⚠ 一定要有預設建構子。
⚠ #execute() 會回傳 null 值。



如果出現以下錯誤,

Suppressed: java.lang.ClassNotFoundException: android.support.v4.util.LruCache
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 17 more
在 build.gradle 設定:
    compile 'com.android.support:appcompat-v7:22.2.+'

參考資料:https://github.com/pardom/ActiveAndroid

Android Studio 1.2.1.1
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"

[Java] Invalid HTTP method: PATCH

最近系統需要使用 Netty4,所以把衝突的 Netty3 拆掉,然後就出現了例外。 pom.xml <dependency> <groupId>com.ning</groupId> <artifactId>as...