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");
}
입니다. 기존에 사용할때, 아이디 지정및 객체 생성등의 필요없는
내용이 사라짐으로써 코드량이 확 주는 것을 확인 하실수 있습니다.