Android代码强制区分规范

前言

Android代码规范是个很模糊又很敏感的话题,有时候很多同事都很不愿意直面对这个问题,谁愿意说自己的代码很烂,其实人往往不愿意改变,就很难再进步,我就在无数次跌倒中有站起来,下面给大家讲讲在实战中几招实用的代码归类和合并,让代码更清晰方便又易于维护。

public abstract class BaseActivity extends Activity implements
		HttpCallback {

	public RequestParams mParams;
	public Click click;
	HashMap<String, String> UMENG_MAP = new HashMap<String, String>();
	private Context mcontext;
	protected boolean bBackGround;
	public BaseApplication app;
	public String mDeviceId;
	@Override
	protected void onCreate(Bundle bundle) {
		super.onCreate(bundle);
		click = new Click();
		mcontext=this.getApplicationContext();
		if (mParams == null)
			mParams = new RequestParams();
		app=(BaseApplication) getApplication();
		mDeviceId =app.mDeviceId;
		initView(bundle);
		initLisitener();
		initData(bundle);
	}
}
大家上面看到了initview、initLisitener、initdata。不要小看了这三个函数,这三个函数就把所有业务层实现代码全归类,既清晰又方便,以此类推fragement、dialog都这样归类,让后面开发者都习惯和遵守这个规定。

       再说第二个优化之处,事件提炼合并,在android里面事件用的比较多。如果一个点击new一个事件,代码会大大不美观、不合理、浪费开发时间。

        

@Override
    protected void initLisitener() {
        setOnClickListener(R.id.back_btn);
        mListView.setXListViewListener(xListViewListener);
        mListView.setOnItemClickListener(itemClick);
    }

    AdapterView.OnItemClickListener itemClick = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
            try {
                ArticleData articleData = articleEntity.list.get(position - 1);
                Intent intent = new Intent(mContext, ArticleDetailActivity.class);
                intent.putExtra("entity", articleData);
                startActivity(intent);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };

    @Override
    public void treatClickEvent(int id) {
        super.treatClickEvent(id);
        switch (id) {
            case R.id.back_btn:
                AppFinish();
                break;
        }
    }
大家看到了initlistener中第一行代码

setOnClickListener(R.id.back_btn); 

        设置某个操作事件,一行代码搞定,那么监听在哪昵!就在treatclickevent函数中,这个函数里面通过所监听的id,直接执行事件处理,具体实现内部逻辑如下。

public void setOnClickListener(int id) {
		if (click == null)
			click = new Click();
		findViewById(id).setOnClickListener(click);
	}

	private class Click implements OnClickListener {
		@Override
		public void onClick(View v) {
			int id = v.getId();
			treatClickEvent(id);
			treatClickEvent(v);
		}
	}

   大家看到其实很简单,上面这个优化也可以写到dialog和fragment中,希望大家能有很多这种优化、规范的建议,欢迎大家留言,谢谢。
发布了50 篇原创文章 · 获赞 7 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/Apple_hsp/article/details/49836403
今日推荐