您的位置:首页 > 移动开发

"晴天"天气app的开源库逐步学习(三)

2015-06-01 10:49 561 查看
今天用到了androidannotations这个开源库,用这个框架写Activity可以省去很多代码,项目简单明了,据说可以做到依赖注入,简化的线程模型,事件绑定,Rest
Client,NO Magic。有些东西我也用不到,你可以去看项目 地址:https://github.com/excilys/androidannotations 
其他注解:https://github.com/excilys/androidannotations/wiki/AvailableAnnotations

使用步骤的话,我是直接下载项目,然后把androidannotations-api-3.3.1.jar直接放到项目里的libs文件夹里,然后右键Build-Path->Add
To Build Path即可。


<pre name="code" class="java" style="font-family: Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol';">package com.sdf.goodweather.activity;

import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Fullscreen;

import com.sdf.goodweather.R;

@Fullscreen
@EActivity(R.layout.activity_start)
public class StartActivity extends BaseActivity {
@ViewById(R.id.etText)
EditText et_Input;

@ViewById(R.id.textView)
TextView tv_View;

@AfterViews
void initActivity() {
// TODO Auto-generated method stub

}

@Click
void myClick() {
String text=et_Input.getText().toString;
</pre><pre name="code" class="java" style="font-family: Helvetica, arial, nimbussansl, liberati
4000
onsans, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol';"> 	}
@afterView
tv_View.setText(text);
}

}


布局的话在布局里面是有一个按钮的,注意button的id在xml和activity里面必须一样才能加括号

当出现多个按钮时:

<pre name="code" class="java">@Click(R.id.button1,R.id.button2,R.id.button3)
void myClick(Button button){
switch(button.getId()){
R.id.button1:
 break;
 }
}



@Fullscreen就是全屏显示了

@EActivity(R.layouy.xxx)这个可以直接使用显示布局,所以比之前的setcontentview方便多了

@ViewById(R.id.xxx)这个也是直接传id,也比以前方便多了,有个用法是在xml里面定义id比如android:id="@+id/textview",然后在@ViewById后面直接写
TextView textview的话可以不用写括号里面的东西,很方便吧


@afterView结果的显示必须放在这里面,不然会报错

最最重要的一点是使用[b]androidannotations,在AndroidManiFest.xml里注册的Activity的名字后面必须加个下划线。比如自己的Activity是MyActivity,注册的时候必须用MyActivity_!!!包括跳到其他Activity的时候也是:[/b]



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

反正还有很多注解,看字面意思吧

Enhanced components

@EActivity
@EApplication
@EBean
@EFragment
@EProvider
@EReceiver
@EIntentService
@EService
@EView
@EViewGroup
Injection

@AfterExtras
@AfterInject
@AfterViews
@App
@Bean
@Extra
@FragmentArg
@FragmentById
@FragmentByTag
@FromHtml
@HttpsClient
@NonConfigurationInstance
@RootContext
@SystemService
@ViewById
@ViewsById
Event binding

@TextChange
@AfterTextChange
@BeforeTextChange
@EditorAction
@FocusChange
@CheckedChange
@Touch
@Click
@LongClick
@ItemClick
@ItemLongClick
@ItemSelect
@OptionsItem
@SeekBarProgressChange
@SeekBarTouchStart
@SeekBarTouchStop
Threading

@Background
@UiThread
@SupposeBackground
@SupposeUiThread
Misc

@InstanceState
@WindowFeature
@Fullscreen
@CustomTitle
@OptionsMenu
@OptionsMenuItem
@OrmLiteDao
@RoboGuice
@Trace
@Transactional
@OnActivityResult
@OnActivityResult.Extra
@HierarchyViewerSupport
@ServiceAction
@Receiver
@Receiver.Extra
@ReceiverAction
@ReceiverAction.Extra
@IgnoredWhenDetached
@WakeLock
Resource injection

@StringRes
@AnimationRes
@ColorRes
@DimensionPixelOffsetRes
@DimensionPixelSizeRes
@DimensionRes
@BooleanRes
@ColorStateListRes
@DrawableRes
@IntArrayRes
@IntegerRes
@LayoutRes
@MovieRes
@StringArrayRes
@TextArrayRes
@TextRes
@HtmlRes
Rest API

@Rest
@RestService
@Get
@Post
@Put
@Delete
@Options
@Head
@Accept
@RequiresHeader
@RequiresCookie
@RequiresCookieInUrl
@RequiresAuthentication
@SetsCookie
@RequiresCookieInUrl
Typesafe SharedPreferences

@DefaultBoolean
@DefaultFloat
@DefaultInt
@DefaultLong
@DefaultString
@DefaultStringSet
@DefaultRes
@Pref
@SharedPref
Preference API helpers

@PreferenceScreen
@PreferenceHeaders
@PreferenceByKey
@PreferenceChange
@PreferenceClick
@AfterPreferences
暂时就先这样了==
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: