当前位置: 代码迷 >> Android >> AndroidAnnotations学习笔记(1)
  详细解决方案

AndroidAnnotations学习笔记(1)

热度:50   发布时间:2016-04-28 02:35:36.0
AndroidAnnotations学习笔记(一)
@EActivity
原来在没用(AndroidAnnotations)之前,我们写代码是这样写:

public class TestActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_test);	}}


不过有了AndroidAnnotations之后,我们可以这样写,[email protected]
@EActivity(R.layout.activity_test)public class TestActivity extends Activity {//	@Override//	protected void onCreate(Bundle savedInstanceState) {//		super.onCreate(savedInstanceState);//		setContentView(R.layout.activity_test);//	}}


当然,上面的注释就不用写了

[email protected],你还有修改“AndroidManifest.xml”,在TestActivity类名后,加个“_”
<activity    android:name=".TestActivity_"    android:label="@string/title_activity_test" >    <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>



@EApplication
@EApplicationpublic class MyApplication extends Application {	public void onCreate() {		super.onCreate();	}}


当然了“AndroidManifest.xml”这个文件还是要修改的,同样也是要加“_”
<application        android:name=".MyApplication_" ></application>


@App
没有这个注解我们要这么写代码:
@EActivity(R.layout.activity_test)public class TestActivity extends Activity {		private MyApplication_ app;		TextView tvTest = null;		@AfterViews	void afterView(){		tvTest = (TextView)this.findViewById(R.id.tv_test);		app = (MyApplication_) getApplication();		tvTest.setText(app.getValue());	}}


[email protected],我们可以这样写:
@EActivity(R.layout.activity_test)public class TestActivity extends Activity {		TextView tvTest = null;	@App	MyApplication app;		@AfterViews	void afterView(){		tvTest = (TextView)this.findViewById(R.id.tv_test);		tvTest.setText(app.getValue());	}}



@ViewById
这个注解可能是我们用到的最常用一个了,每次我们写的最多的代码都是this.findViewById,这个注解可以帮助我们省去不少的工作。
如前一个例子
public class TestActivity extends Activity {		TextView tvTest = null;	@App	MyApplication app;		@AfterViews	void afterView(){		tvTest = (TextView)this.findViewById(R.id.tv_test);		tvTest.setText(app.getValue());	}}

现在我们的代码也可以这么写:
@EActivity(R.layout.activity_test)public class TestActivity extends Activity {		@App	MyApplication app;		@ViewById(R.id.tv_test)	TextView tvTest;	@AfterViews	void afterView(){		tvTest.setText(app.getValue());	}}

当然了如果你的变量名与R.id.tv_test的名称一致,你也可以这下写,这样我们又省去了不少的代码量:
@ViewById(R.id.tv_test)TextView tvTest;@ViewByIdTextView tv_test;


  相关解决方案