论坛首页 移动开发技术论坛

写了个小框架,大家帮忙提提意见

浏览 15430 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-07   最后修改:2012-08-15

放到google code上了:
http://code.google.com/p/easy-android-utility/

 

0.3版做了较大改动,使用更简单,不再兼容以前版本。

0.3.0版本支持的Annotations:

AfterTextChanged
AutoInject
BeforeTextChanged
CustomExpander
FindById
Inflate
OnCheckedChange
OnChildViewAdded
OnChildViewRemoved
OnClick
OnCreateContextMenu
OnDoubleTap
OnDoubleTapEvent
OnDown
OnEditorAction
OnFling
OnFocusChange
OnKey
OnLongClick
OnLongPress
OnScroll
OnShowPress
OnSingleTapConfirmed
OnSingleTapUp
OnTextChanged
OnTouch
Task

 

Usage Example:
typical Android activity

public class AndroidWay extends Activity
{
        private Button btn1;
        private Button btn2;

        @Override
        public void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                btn1 = (Button)this.findViewById(R.id.btn1);
                btn2 = (Button)this.findViewById(R.id.btn2);
                
                OnClickListener listener = new OnClickListener(){

                        @Override
                        public void onClick(View v)
                        {
                                switch(v.getId()){
                                case R.id.btn1:
                                        //do something
                                        break;
                                case R.id.btn2:
                                        //do something
                                        break;
                                }                               
                        }};
                btn1.setOnClickListener(listener);
                btn2.setOnClickListener(listener);
        }
}



written using EasyAndroid

public class EasyWay extends EasyActivity
{
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
        }

        @OnClick({R.id.btn1, R.id.btn2})
        private void doSometing(View v)
        {
                switch(v.getId()){
                case R.id.btn1:
                        //do something
                        break;
                case R.id.btn2:
                        //do something
                        break;
                }
        }
}

 

   发表时间:2012-02-08  
想法不错。
0 请登录后投票
   发表时间:2012-02-08  
业余有时间我会持续更新这个框架,主要是想用利用JAVA的一些已有的特性让Android开发效率更高,并且保证性能和最小化。
0 请登录后投票
   发表时间:2012-02-08  
    public class aActivity extends Activity 
    { 
            @Override 
            public void onCreate(Bundle savedInstanceState) 
            { 
                    super.onCreate(savedInstanceState); 
                    setContentView(R.layout.main); 
            } 
     
            private void doSometing(View v) 
            { 
                    switch(v.getId()){ 
                    case R.id.btn1: 
                            //do something 
                            break; 
                    case R.id.btn2: 
                            //do something 
                            break; 
                    } 
            } 
    } 

不是本来就可以这样实现么?
0 请登录后投票
   发表时间:2012-02-08  
<button> 不是有onclick标签么,直接指定到 Activity中的方法
0 请登录后投票
   发表时间:2012-02-08  
看看roboguice吧
0 请登录后投票
   发表时间:2012-02-08   最后修改:2012-02-08
看过roboguice,不是很喜欢,只是注入对象对提高android的开发效率提高不大,因为android更像Swing,是事件驱动的。虽然roboguice是封装的guice,guice在j2ee领域是一个超轻量级的ioc框架,但放到手机领域还是显得重,而且我使用时感觉严重影响性能(程序启动时间)。

另外XML中只是提供了有限的标签,似乎只是onclick,我现在是想扩展几乎所有事件。现在的框架已经支持的有:
OnCheckedChange.
OnClick.
OnCreateContextMenu.
OnEditorAction.
OnFocusChange.
OnKey.
OnLongClick.
OnTouch.
(写到XML中还有个不好的地方,只看代码有时会不知是哪个View调用了这个方法,而且该方法必须是public的)

0 请登录后投票
   发表时间:2012-02-08  
欢迎提意见,也希望有感兴趣的一块写。
0 请登录后投票
   发表时间:2012-02-08  
我也写类似的东西,和楼主一样,都是采用roboguice的那种反射注入方式。
google code上我还看过android annotations。它的做法很有远见,使用annotation处理做到高效率。
很有意思的项目~建议楼主看看
0 请登录后投票
   发表时间:2012-02-08  
sd6733531 写道
我也写类似的东西,和楼主一样,都是采用roboguice的那种反射注入方式。
google code上我还看过android annotations。它的做法很有远见,使用annotation处理做到高效率。
很有意思的项目~建议楼主看看


嗯,也看过。不过感觉老外的思路真是和东方人不一样啊,用着别扭。仁兄写的是什么,拿出来晒晒哈^_^
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics