Saturday, August 29, 2015

[AndroidAnnotations_EnhancedComponent] - @EActivity

1. @EActivity Basic

1.1 Android

@EActivity의 사용은 안드로이드 Activity 클래스를 만들 때 사용하게 된다. 가장 기본적으로 사용되는 Annotation이라고 볼 수 있다. @EActivity annotation은 반드시 layout id가 필요하며, 해당 값은 activity 의 ContentView로 연결된다. 따라서 이것을 Framework를 사용하지 않고 안드로이드 코드로 작성한다면 아래와 같은 코드가 작성된다.

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
}

1.2 AndroidAnnotations

반면에 이를 AA Framework를 이용하게 되면 아래와 같이 코드가 간결해짐을 알 수 있다.

import android.app.Activity;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;

@EActivity(R.layout.activity_main)
public class AAMainActivity extends Activity{
}

2. Intent Activity

2.1 Android

Android 에서 기본적으로 Activity간에 이동을 하는 경우에 intent를 사용하게 되는데, Intent의 연결도 한결 간결하게 표현됨을 알 수 있다. 먼저 Intent 객체를 생성하여 해당 클래스에 대한 intent 객체를 생헝하고 startActivity를 이용하여 해당 intent를 실행하는 구조로 작동된다. 따라서 기존 Android 소스 코드는 다음과 같이 표현된다.

Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);

2.2 AndroidAnnotations

해당 Framework를 사용하여 Activity를 @EActivity를 이용하여 클래스 파일을 생성할 경우에는 LoginActvity_.class로 클래스가 생성되고 따라서 intent를 호출하는 문법은 아래와 같이 변경되게 된다.

Intent intent = AALoginActivity_.intent(AAMainActivity.this).get();
startActivity(intent);

또한 해당 문법은 아래와 같이 표현될 수 있다.

AALoginActivity_.intent(getApplicationContext()).flags(Intent.FLAG_ACTIVITY_NEW_TASK).start();

No comments:

Post a Comment