androidkit发布0.5.3alpha版

 androidkit是一个用于android应用层开发的工具包,它将有助于你提高开发效率。它封装了至少以下操作: 


  • 包含SQLiteOpenHelper的简单实现类。
  • 获取指定URL中返回的内容的String对象。
  • View控件的截图。
  • 获取本程序的图标、名字、版本、包名等信息。
  • 再按一次退出。
  • 抽象类,继承并实现该抽象方法以实现再按一次执行指定事件。
  • Activity管理,用以管理启动的Activity。
  • IntroActivity开启程序动画。
  • 增加颜色选择器
  • UI控件及事件绑定
  • 资源的绑定
  • ...


示例代码:
Java代码 复制代码 收藏代码
  1. // 这里添加注解,指定对应的id
  2. @AndroidView(id = R.id.home_result_upload)
  3. private TextView mTextUpload;
  4. @AndroidView(id = R.id.home_users)
  5. private Spinner mSpinnerUser;
  6. // 资源的绑定,指定id,类型
  7. @AndroidRes(id = R.string.result_scan, type = ResType.STRING)
  8. private String mStringScan;
  9. // 对AdapterView的子类还可以绑定onCreateContextMenu,onItemClick等的事件监听。
  10. @AndroidView(id = R.id.user_listView, onCreateContextMenu = "listViewContextMenu", onItemClick = "onListItemClick")
  11. private ListView mUserListView;
  12.  
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. // 调用此方法将对控件、事件进行绑定
  17. UIBindUtil.bind(this, R.layout.activity_home);
  18. // 调用此方法将对资源如String, StringArray, Drawable等资源对象进行绑定。
  19. ResBindUtil.bindAllRes(this);
  20. }
  21.  
  22. // 这里对应着上面的mUserListView的onCreateContextMenu方法名。
  23. public void listViewContextMenu(ContextMenu menu, View v,
  24. ContextMenuInfo menuInfo) {
  25. menu.add(0, DELETE, 1, "删除");
  26. }
  27.  
  28. // 这里对应着上面的mUserListView的onItemClick方法名。
  29. public void onListItemClick(AdapterView<?> arg0, View arg1, int arg2,
  30. long arg3) {
  31. mUserListView.showContextMenuForChild(arg1);
  32. }
  33.  
  34. // 对View的setOnClickListener事件进行绑定,这样不再需要先声明变量。
  35. @OnClick(viewId = { R.id.home_scan, R.id.home_upload_result,
  36. R.id.home_borrow_book, R.id.home_return_book,
  37. R.id.home_user_manager })
  38. public void onButtonClick(View v) {
  39. switch (v.getId()) {
  40. case R.id.home_scan:
  41. Intent intent = new Intent("com.google.zxing.client.android.SCAN");
  42. this.startActivityForResult(intent, HOME_ACTIVITY);
  43. break;
  44. case R.id.home_upload_result:
  45. break;
  46. case R.id.home_borrow_book:
  47. break;
  48. case R.id.home_return_book:
  49. break;
  50. case R.id.home_user_manager:
  51. startActivity(new Intent(this, UserManagerActivity.class));
  52. break;
  53. default:
  54. break;
  55. }
  56. }
        // 这里添加注解,指定对应的id
        @AndroidView(id = R.id.home_result_upload)
        private TextView mTextUpload;
        @AndroidView(id = R.id.home_users)
        private Spinner mSpinnerUser;
        // 资源的绑定,指定id,类型
        @AndroidRes(id = R.string.result_scan, type = ResType.STRING)
        private String mStringScan;
        // 对AdapterView的子类还可以绑定onCreateContextMenu,onItemClick等的事件监听。
        @AndroidView(id = R.id.user_listView, onCreateContextMenu = "listViewContextMenu", onItemClick = "onListItemClick")
        private ListView mUserListView;
 
       @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                // 调用此方法将对控件、事件进行绑定
                UIBindUtil.bind(this, R.layout.activity_home);
                // 调用此方法将对资源如String, StringArray, Drawable等资源对象进行绑定。
                ResBindUtil.bindAllRes(this);
        }

       // 这里对应着上面的mUserListView的onCreateContextMenu方法名。
        public void listViewContextMenu(ContextMenu menu, View v,
                        ContextMenuInfo menuInfo) {
                menu.add(0, DELETE, 1, "删除");
        }

       // 这里对应着上面的mUserListView的onItemClick方法名。
        public void onListItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                mUserListView.showContextMenuForChild(arg1);
        }
 
       // 对View的setOnClickListener事件进行绑定,这样不再需要先声明变量。
        @OnClick(viewId = { R.id.home_scan, R.id.home_upload_result,
                        R.id.home_borrow_book, R.id.home_return_book,
                        R.id.home_user_manager })
        public void onButtonClick(View v) {
                switch (v.getId()) {
                case R.id.home_scan:
                        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                        this.startActivityForResult(intent, HOME_ACTIVITY);
                        break;
                case R.id.home_upload_result:
                        break;
                case R.id.home_borrow_book:
                        break;
                case R.id.home_return_book:
                        break;
                case R.id.home_user_manager:
                        startActivity(new Intent(this, UserManagerActivity.class));
                        break;
                default:
                        break;
                }
        }

可以看到,我们不再需要写一些烦人的诸如button = (Button)findViewById(R.id.button)此类的的代码,对绑定事件监听也不需要再写繁冗的内部类了,它都已经为你封装好,只需要声明对应的View的id,方法名等即可。我们写程序是用来解决问题的,封装了这些UI相关代码,我们才能将更专注于具体的业务逻辑。

 

你可能感兴趣的:(发布)