Andorid之Annotation框架初使用(六)
EVENT
@Click :点击事件,只能有0个或1个参数,且参数为View
- @Click(R.id.myButton)
- void myButtonWasClicked() {
- [...]
- }
- @Click
- void anotherButton() {
- [...]
- }
- @Click
- void yetAnotherButton(View clickedView) {
- [...]
- }
@LongClick
@Touch
AdapterViewEvents
@ItemClick 必须有一个参数,如果这个参数是object类型,意味着adapter.getItem(position) ; 如果是int ,意味着是position
@LongItemClick 必须有一个参数,如果这个参数是object类型,意味着adapter.getItem(position) ; 如果是int ,意味着是position
@ItemSelect 必须有一个或者两个参数,第一个参数必须是boolean 第二个参数为adapter.getItem(position) 或者也可以是int ,意味着是position
- @EActivity(R.layout.my_list)
- public class MyListActivity extends Activity {
- // ...
- @ItemClick
- public void myListItemClicked(MyItem clickedItem) {
- }
- @ItemLongClick
- public void myListItemLongClicked(MyItem clickedItem) {
- }
- @ItemSelect
- public void myListItemSelected(boolean selected, MyItem selectedItem) {
- }
- }
或者:
- @EActivity(R.layout.my_list)
- public class MyListActivity extends Activity {
- // ...
- @ItemClick
- public void myListItemClicked(int position) {
- }
- @ItemLongClick
- public void myListItemLongClicked(int position) {
- }
- @ItemSelect
- public void myListItemSelected(boolean selected, int position) {
- }
- }
SeekBarEvents:
@OnSeekBarProgressChange
- @SeekBarProgressChange(R.id.seekBar)
- void onProgressChangeOnSeekBar(SeekBar seekBar, int progress, boolean fromUser) {
- // Something Here
- }
- @SeekBarProgressChange(R.id.seekBar)
- void onProgressChangeOnSeekBar(SeekBar seekBar, int progress) {
- // Something Here
- }
- @SeekBarProgressChange({R.id.seekBar1, R.id.seekBar2})
- void onProgressChangeOnSeekBar(SeekBar seekBar) {
- // Something Here
- }
- @SeekBarProgressChange({R.id.seekBar1, R.id.seekBar2})
- void onProgressChangeOnSeekBar() {
- // Something Here
- }
@SeekBarTouchStart
@SeekBarTouchStop
以上两个标签的方法有0个或一个参数 , 一个参数类型为 SeekBar
@FocusChange
- @FocusChange(R.id.helloTextView)
- void focusChangedOnHelloTextView(View hello, boolean hasFocus) {
- // Something Here
- }
- @FocusChange
- void helloTextViewFocusChanged(View hello) {
- // Something Here
- }
- @FocusChange({R.id.editText, R.id.helloTextView})
- void focusChangedOnSomeTextViews(View hello, boolean hasFocus) {
- // Something Here
- }
- @FocusChange(R.id.helloTextView)
- void focusChangedOnHelloTextView() {
- // Something Here
- }
@CheckedChange
- @CheckedChange(R.id.helloCheckBox)
- void checkedChangeOnHelloCheckBox(CompoundButton hello, boolean isChecked) {
- // Something Here
- }
- @CheckedChange
- void helloCheckBoxCheckedChanged(CompoundButton hello) {
- // Something Here
- }
- @CheckedChange({R.id.aCheckBox, R.id.helloCheckBox})
- void checkedChangedOnSomeCheckBoxs(CompoundButton hello, boolean isChecked) {
- // Something Here
- }
- @CheckedChange(R.id.helloCheckBox)
- void checkedChangedOnHelloCheckBox() {
- // Something Here
- }
@TextChange
- @TextChange(R.id.helloTextView)
- void onTextChangesOnHelloTextView(CharSequence text, TextView hello, int before, int start, int count) {
- // Something Here
- }
- @TextChange
- void helloTextViewTextChanged(TextView hello) {
- // Something Here
- }
- @TextChange({R.id.editText, R.id.helloTextView})
- void onTextChangesOnSomeTextViews(TextView tv, CharSequence text) {
- // Something Here
- }
- @TextChange(R.id.helloTextView)
- void onTextChangesOnHelloTextView() {
- // Something Here
- }
@BeforeTextChange
- @BeforeTextChange(R.id.helloTextView)
- void beforeTextChangedOnHelloTextView(TextView hello, CharSequence text, int start, int count, int after) {
- // Something Here
- }
- @BeforeTextChange
- void helloTextViewBeforeTextChanged(TextView hello) {
- // Something Here
- }
- @BeforeTextChange({R.id.editText, R.id.helloTextView})
- void beforeTextChangedOnSomeTextViews(TextView tv, CharSequence text) {
- // Something Here
- }
- @BeforeTextChange(R.id.helloTextView)
- void beforeTextChangedOnHelloTextView() {
- // Something Here
- }
@AfterTextChange
- @AfterTextChange(R.id.helloTextView)
- void afterTextChangedOnHelloTextView(Editable text, TextView hello) {
- // Something Here
- }
- @AfterTextChange
- void helloTextViewAfterTextChanged(TextView hello) {
- // Something Here
- }
- @AfterTextChange({R.id.editText, R.id.helloTextView})
- void afterTextChangedOnSomeTextViews(TextView tv, Editable text) {
- // Something Here
- }
- @AfterTextChange(R.id.helloTextView)
- void afterTextChangedOnHelloTextView() {
- // Something Here
- }
Option Menu:
- @EActivity
- @OptionsMenu(R.menu.my_menu)
- public class MyActivity extends Activity {
- @OptionMenuItem
- MenuItem menuSearch;
- @OptionsItem(R.id.menuShare)
- void myMethod() {
- // You can specify the ID in the annotation, or use the naming convention
- }
- @OptionsItem
- void homeSelected() {
- // home was selected in the action bar
- // The "Selected" keyword is optional
- }
- @OptionsItem
- boolean menuSearch() {
- menuSearch.setVisible(false);
- // menuSearch was selected
- // the return type may be void or boolean (false to allow normal menu processing to proceed, true to consume it here)
- return true;
- }
- @OptionsItem({ R.id.menu_search, R.id.menu_delete })
- void multipleMenuItems() {
- // You can specify multiple menu item IDs in @OptionsItem
- }
- @OptionsItem
- void menu_add(MenuItem item) {
- // You can add a MenuItem parameter to access it
- }
- }
Andorid之Annotation框架初使用(六)的更多相关文章
- Andorid之Annotation框架初使用(七)
Save Instance State:程序保留Activity的实例状态 , 在onSaveInstanceState(Bundle)被系统调用的时候自动保存 , onCreate(Bundle)被 ...
- Andorid之Annotation框架初使用(五)
注入res文件夹的资源: @StringRes @EActivity public class MyActivity extends Activity { @StringRes(R.string.he ...
- Andorid之Annotation框架初使用(四)
代替繁琐的finViewById @EActivity public class MyActivity extends Activity { // Injects R.id.myEditText @V ...
- Andorid之Annotation框架初使用(三)
线程使用: @Background这个是使用了cached thread pool executor , 阻止开启过多的线程 可以为@Background指定一个id,用于随时终止线程的操作(Back ...
- Andorid之Annotation框架初使用(二)
Fragment: @EActivity(R.layout.fragments) public class MyFragmentActivity extends FragmentActivity { ...
- Andorid之Annotation框架初使用(一)
1. 设置Activity的布局 @EActivity(R.layout.main) public class MyActivity extends Activity {} 注: 此时在Android ...
- AVFoundation 框架初探究(二)
接着第一篇总结 系列第一篇地址:AVFoundation 框架初探究(一) 在第一篇的文章中,我们总结了主要有下面几个点的知识: 1.对AVFoundation框架整体的一个认识 2.AVSpeech ...
- 跟着刚哥学习Spring框架--JDBC(六)
Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...
- (转)MyBatis框架的学习(六)——MyBatis整合Spring
http://blog.csdn.net/yerenyuan_pku/article/details/71904315 本文将手把手教你如何使用MyBatis整合Spring,这儿,我本人使用的MyB ...
随机推荐
- poj 1077(BFS预处理+康托展开)
Eight Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29935 Accepted: 13029 Special ...
- 用JDK自带的监控工具jconsole来监控程序运行
工具目录:C:\Program Files\Java\jdk1.6.0_06\bin\jconsole.exe 效果如下:监控类ThreadPoolExecutorTest 的运行 选择我们运行的程序 ...
- n*m的矩阵,行和列都递增有序,求是否出现target元素(面试题)
题目描述:给定一个n*m的矩阵,矩阵的每一行都是递增的,每一列也是递增的,给定一个元素target,问该target是否在矩阵中出现. 思路:先从最左下角的元素开始找,三种情况: 1. 如果该元素大于 ...
- 原生js粘贴复制【源码】
<html> <head> <meta charset="UTF-8"> <title>9行代码实现复制内容至剪切板</tit ...
- 【caffe-Windows】微软官方caffe之matlab接口配置,以及安装caffe的注意事项
1.在此之前,记录一下之前的错误,在参考博客[caffe-Windows]caffe+VS2013+Windows+GPU配置+cifar使用进行caffe的安装时,其中的一些步骤可以不做,具体见下图 ...
- lr中用strtok函数分割字符串
需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数. ,6,5,0,4,0,3,0,3,2,0,0,0,1 用web_reg_save_param取出“8,7,5,15, ...
- run-time setting 中设置simulate browser cache 选项详解
Browser Emulation: Simulate browser cache:配置Vuser模拟带缓存的浏览器.缺省缓存是被允许的, 可以通过禁止该选项来使得所有VUser模拟的浏览器都不 ...
- php大图
原文地址:https://laravel-china.org/articles/9450/php-fpm-vs-swoole
- vue表格导入
<input id="upload" type="file" @change="importfxx(this)" accept=&q ...
- FastReport.Net使用:[8]交叉表一
1.绘制报表标题,交叉表可以直接放在标题栏内. 2.拖动一交叉表控件到标题栏内. 3.设置交叉表的行列信息. 将Tabel中的[科室名称]列拖到交叉表的列上以创建列,将Tabel中的[姓名]列拖到交叉 ...