posted by 생존본능 2015.05.04 14:49


 androidannotations 에서 많이 사용되는것 위주로 정리해 두겠습니다.





 1. @EActivity


 안드로이드에서 가장 많이 사용되는 어노텐션입니다.


 androidannotations 을 사용하는 activity를 명령하는 어노텐션 입니다.


@EActivity

public class MainActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}


 위와 같이 명명 하시면 됩니다.


 또한 layout과 같이 사용하시려면 


 

@EActivity( R.layout.activity_main )

public class MainActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}



 내용 처럼 @EActivity( R.layout.activity_main ) 으로 사용 하시면 됩니다.


 이렇게 적용하신 다음에


 mainifests에서 activity 명을 activity_ 으로 수정해주시면 됩니다.




 변경해 주시면 오류가 뜨는데 이때 Build > rebuild project 하시면 오류가 사라집니다.



 rebuild project를 하시면 보이지는 않지만 androidannotations에서 자동으로


 "activity_" 라는 클래스를 생성하기때문에 정상적으로 표시되는 것을 확인하실수있습니다.


 




 2. @AfterViews


@AfterViews는 view에 대한 모든 내용이 완료된 이후에 호출됩니다.



@EActivity( R.layout.activity_main )

public class MainActivity extends ActionBarActivity {



    @AfterViews

    protected void init()

    {

    }

}



 위 처럼 사용하시면 됩니다.


 주의 하실점은 androidannotations에서 MainActivity_라는 클래스를 생성하여


 MainActivity에 접근하기때문에 private를 사용할경우 오류가 발생합니다.


 public 또는 protected 만 사용이 가능합니다.





 3, @ViewById


 @ViewById는 안드로이드에서 사용했던 findViewById의 절차를 간소한 어노텐션입니다.


protected TextView tvMain;


    @Override

    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {

        super.onCreate(savedInstanceState, persistentState);

        tvMain = (TextView) findViewById( R.id.tvMain );

    }



 처럼 사용했던 기존에 방식에서 @ViewById를 사용함으로써 간소화 하는 방식입니다.



 사용법은


     @ViewById

    protected TextView tvMain;


 처럼 사용하시면 됩니다. 위처럼 사용하시면 R.id.tvMain 이란 객체를 찾아 tvMain 변수에 넣어줍니다.



    @ViewById ( R.id.tvMain )

    protected TextView tvMain;



 또한 위처럼도 사용이 가능합니다.




 4. @Click

 

 기존에 사용하던 버튼을 사용하던 방식에서 크게 간소화 되었습니다.


protected TextView tvMain;


    @Override

    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {

        super.onCreate(savedInstanceState, persistentState);

        tvMain = (TextView) findViewById( R.id.tvMain );

        tvMain.setOnClickListener( new View.OnClickListener(){

            @Override

            public void onClick(View v) {

                Log.i(TAG , "tvMainClick");

            }

        });

    }


 

 사용 방식은

 

@Click( R.id.tvMain )

    protected void tvMainClick()

    {

        Log.i(TAG , "tvMainClick");

    }


 입니다. 기존에 사용할때, 아이디 지정및 객체 생성등의 필요없는


 내용이 사라짐으로써 코드량이 확 주는 것을 확인 하실수 있습니다.



저작자 표시
신고
posted by 생존본능 2015.05.04 14:23



 안드로이드 스튜디오( Android Studio )에다가 androidannotations 적용하기가 여간 까다롭네요.


 이전에 올라왔던 글들을 보면 업데이트가 되서 그런지 않되는 경우가 많이 있구요,


 그래서 최신버전으로 다시 적용 방법을 보겠습니다.


 이글은 2015-05-04일에 작성되었습니다.


 

 우선 프로젝트를 생성한 이후 Gradle Scripts를 확인해 보시면 build에 관련하여


 두개의 gradle을 확인 하실 수있습니다.




 두개의 gradle중 Module: app 을 선택하여 진입합니다.



 


 프로젝트 생성시 기본적인 셋팅이 되어있는 것을 확인 하실수 있습니다.


 우리는 androidannotations를 셋팅하기위해서 gradle 의 내용을 바꾸어 줘야 합니다.


 


buildscript {

    repositories {

        mavenCentral()

    }

    dependencies {

        // replace with the current version of the Android plugin

        classpath 'com.android.tools.build:gradle:1.0+' // 버전에 맞게 변경.

        // the latest version of the android-apt plugin

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'

    }

}


repositories {

    mavenCentral()

    mavenLocal()

}


apply plugin: 'android'

apply plugin: 'android-apt'

def AAVersion = '3.3' // 현재 최신버전 3.3으로 되어있으나 버전에 따라 변경.


dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:22.0.0'

    apt "org.androidannotations:androidannotations:$AAVersion"

    compile "org.androidannotations:androidannotations-api:$AAVersion"

    compile 'org.androidannotations:androidannotations:3.3'

}


apt {

    arguments {

        androidManifestFile variant.outputs[0].processResources.manifestFile

        resourcePackageName '[현재 프로젝트의 패키지]'

    }

}


android {

    compileSdkVersion 21

    buildToolsVersion '22.0.1'


    defaultConfig {

        applicationId "[현재 프로젝트의 패키지]"

        minSdkVersion 9

        targetSdkVersion 21

        versionCode 1

        versionName "1.0"

    }


    buildTypes {

        release {

            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'),

                    'proguard-rules.txt'

        }

    }


    packagingOptions {

        exclude 'META-INF/ASL2.0'

        exclude 'META-INF/LICENSE'

        exclude 'META-INF/license.txt'

        exclude 'META-INF/NOTICE'

        exclude 'META-INF/notice.txt'

    }


    sourceSets {

        main {

//            manifest.srcFile 'src/main/AndroidManifest.xml'

//            java.srcDirs = ['src/main/java']

//            resources.srcDirs = ['src/main/resources']

//            res.srcDirs = ['src/main/res']

//            assets.srcDirs = ['src/main/assets']

        }

    }




위에 내용으로 바꾸어 줍니다.


 버전에 맞게 내용을 변경 하시면 됩니다.


 그리고 [현재 프로젝트의 패키지]를 자신의 프로젝트에 맞게 변경하시면 됩니다.


 제가 사용하는 패키지는 "tc.wo.mbseo.applyandroidannotations" 이기 때문에 맞게 변경합니다.



apt {

    arguments {

        androidManifestFile variant.outputs[0].processResources.manifestFile

        resourcePackageName 'tc.wo.mbseo.applyandroidannotations'

    }

}



defaultConfig {

        applicationId "tc.wo.mbseo.applyandroidannotations"

        minSdkVersion 9

        targetSdkVersion 21

        versionCode 1

        versionName "1.0"

    }

 


 

 저장한 이후 rebuild project 합니다.

 




 이제 실행하시면 됩니다.






 위와 같이 나오면 정상적으로 적용된것입니다.




저작자 표시
신고
posted by 생존본능 2015.04.07 18:41


우선 안드로이드 스튜디오에 androidAnnotations적용하기



위에 내용대로 진행하다 보면 아래 오류가 발생.




Error:(46, 0) Gradle DSL method not found: 'runProguard()' Possible causes:


내용을 찾아보니, 


build.gradle에서 내용중에 runProguard내용을 바꿔주면 됩니다.

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




buildTypes {
        release {
            minifyEnabled false //내용 수정
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }


저작자 표시
신고
posted by 생존본능 2015.02.10 14:08




안드로이드 스튜디오(Android Studio) 에서는 모듈( Module ) 을 그냥 delete로 삭제할수 없습니다.


삭제하기 위해서는 프로젝트에서 선택되어있는 프로젝트를 삭제하는 아래의 과정을 거쳐야 합니다.


 

 File - Project Structure - Modules 에서 삭제하고 싶은 모듈( Module ) 선택하고 좌측상단 


 ( - ) 버튼을 누른후 ok 버튼을 누르시면 됩니다.


 그러면 프로젝트에서 삭제됩니다.


 이후 파일 자체를 삭제하기 위해서는 안드로이드 스튜디오(Android Studio) 에서 좌측 상단


 android 로 선택되어있는것을 project로 변경하시면 파일 트리가 패키지에서


 폴더형태로 변경되어 거기서 샂게하고 싶으신 Module 을 삭제하시면 됩니다.

저작자 표시
신고
posted by 생존본능 2015.01.30 14:47


개발 환경 잡은 이후 가장 먼저 하는 폰트 변경 방법 공유합니다.






 안드로이드 스튜디오 안드로이드 스튜디오(android Studio)에서 폰트를 변경하기 위해서는,

 File-Settings 을 선택합니다.






 창이 뜨면 왼쪽 메뉴에서 Editor를 선택하여 하위창을 열고, Colors&Font를 선택합니다.







 이후 Scheme를 추가하여야 하므로 save as를 눌러 scheme를 추가합니다.






schmem를 선택한이후 폰트를 선택하여줍니다.




  File-Settings-Editor-Colors&Font- Scheme save as..- font



저작자 표시
신고
posted by 생존본능 2015.01.30 14:38



 eclipse에서 자주사용하는 자동 import (ctrl+shift+o)기능을 android stuido에서 조금더 편하게

자동으로 생성 관리를 해주는 방법이 있어 공유합니다.


android studio 에서  File -> Settings -> Editor -> Auto Import -> Java


으로 이동한 이후에,


Insert imports on paste 에 있는 값을 All 로 변경


Add unambigious imports on the fly 를 체크




단축키를 누를 필요없이 자동으로 사용하는 클래스가 없으면 import에서 삭제되고 추가됩니다.



http://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android-studio



저작자 표시
신고
posted by 생존본능 2015.01.16 10:41


ADT 개발이 중단되고 안드로이드 스튜디오 android studio로 옮겨야 하는 상황에서 


 이번에 실행해보고 이것저것 하는데 이래저래 걸리는 부분이 많이있네요.ㅠ


 그러다 화면에 거슬리는 선이 있어서 없애려고하는데 없애지지도 않아


 한참을 찾은것같습니다.





 방법은


 File -> settings -> editor -> appearance -> show right margin 을 체크 해제하시면 됩니다.



출처 : 

 http://stackoverflow.com/questions/3480826/adding-a-column-guideline-to-the-editor-in-intellij

저작자 표시
신고

티스토리 툴바