• 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
        }
    }
  • 相关阅读:
    Windows access Linux / Ubuntu via Remote Desktop via xrdp
    Difference between model.evaluate vs model.predict in Keras
    Ubuntu pydot failed to call GraphViz.Please install GraphViz 解决方法
    体验godaddy域名转入,添加A记录,及使用dnspod的NS
    安装SQL Server 2008,一直要求重启电脑的解决办法
    在线网站探测工具-阿里测
    iis日志分析软件及大文本切割软件下载
    C# web服务器被webbench攻击及目现采用的防御措施
    C# iframe session 丢失
    C# CashCode项目开发
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/3150100.html
Copyright © 2020-2023  润新知