android 框架搭建養成的良好習慣(一)

第一次搭建大的框架,簡單吧一些簡單的東西記錄下。。。

首先應該養成良好的代碼習慣。

1.關於log日誌的管理,log日誌是很危險的東西,你在你不經意間遺漏出一個重要的日誌,可能會給你以後造成很大的危險,當然了 很多人說就我做這小項目,有什麼危險,誰會攻擊或者看我的項目,別這麼說習慣是從小養成的。認真是一種態度,養成良好的習慣是一個不錯的。。

管理log的工具類

package com.frontnetwork.ftms.utils;

import android.util.Log;
/**
 * 
 * @author Jansin Miao 2013年4月8日
 * 開發階段將下面LOG_LEVEL 設置爲6這樣所有的log都能顯示,
 * 在發佈的時候我們將LOG_LEVEL 設置爲0.這樣log就非常方便管理了
 *
 */
public class HLog {
	 public static int LOG_LEVEL = 6;
	 public static int ERROR = 1;
	 public static int WARN = 2;
	 public static int INFO = 3;
	 public static int DEBUG = 4;
	 public static int VERBOS = 5;
	 
	 
	 public static void e(String tag,String msg){
	  if(LOG_LEVEL>ERROR)
	  Log.e(tag, msg);
	 }
	 
	 public static void w(String tag,String msg){
	  if(LOG_LEVEL>WARN)
	  Log.w(tag, msg);
	 }
	 public static void i(String tag,String msg){
	  if(LOG_LEVEL>INFO)
	  Log.i(tag, msg);
	 }
	 public static void d(String tag,String msg){
	  if(LOG_LEVEL>DEBUG)
	  Log.d(tag, msg);
	 }
	 public static void v(String tag,String msg){
	  if(LOG_LEVEL>VERBOS)
	  Log.v(tag, msg);
	 }
}

2.爲了便於調試,所有類都定義TAG。並在所有方法(或者關鍵步驟開始)進行日誌的記錄。

class TestService extends SuperClass{ 
    private static final String TAG = "text.TestService"; 
    // some code... 
    private void method1(){ 
        Log.i(TAG,"method1"); 
        // some code... 
    } 
} 

3.創建BaseActivity

package com.frontnetwork.ftms.act;

import com.frontnetwork.ftms.R;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;

/**
 * 
 * @author jansin
 *
 */
public abstract class BaseActivity extends Activity implements OnClickListener{

	private ViewGroup titlebarView,contentView;
	private LayoutInflater intlater;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_base);
		titlebarView = (ViewGroup) this.findViewById(R.id.base_titlebar);
		contentView= (ViewGroup) this.findViewById(R.id.base_content);
		intlater = LayoutInflater.from(this);
		
	}
	
	//設置titlebar
	public void setTitleBar(int resource){
		
		titlebarView.addView(intlater.inflate(resource, null));

	}
	
       //設置佈局
	public void setContent(int resource){
		
		contentView.addView(intlater.inflate(resource, null));
		
	}
	
	//設置titlebar是否可見
	public void setTitleBarVisible(int visible){
		titlebarView.setVisibility(visible);
	}
	
	//加載控件
	protected abstract void initComponent(); 
	
	//控件的點擊事件
	protected abstract void registerListener();
	
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub

	}

其中title 一般都不用android自帶的,很多都自己定義,此時我到了自定義的titlebar所以我在baseactivity中定義2個屬性,一是titlebar的可見性,有的需要去掉titlebar 定義一個開關,在子類中可以設置titel的顯示與否,titlebar的佈局,子類中通過setTitleBar(findviewById);就可以自己夾在自定義的佈局。

因爲很多界面都有點擊事件所以我直接在baseActivity中實現了點擊事件的接口和方法。以便子類調用。

//加載控件
protected abstract void initComponent(); 

//控件的點擊事件
protected abstract void registerListener();


這兩個方法是便於子類中代碼的管理。。

本篇只是開始,自己無聊記錄下,未完待續。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章