我想在我的android應用程序中有一個輔助類,如Convert或Utils。我有的典型問題是:是繼承應用程序的唯一方法在Android中實現靜態輔助方法?
public class Convert {
private Convert() {
// I can't be instantiated
}
public static int pxToDp(float pixels) {
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, pixels, displayMetrics);
}
}
上面的失敗當然是因爲Convert不知道getResources()是什麼。 所以這讓我兩個選擇:
- 傳遞一個方面,我想用一個輔助方法,它是垃圾
子類應用程序,修改我的表現各一次,然後創建一個參考,這樣的:
public class App extends Application { private static Context mContext; @Override public void onCreate() { super.onCreate(); mContext = this; } public static Context getContext() { return mContext; } }
然後做App.getContext()
無處不在我需要它。
問題:這不可能是正確的,什麼是優雅的方式繼續?
我希望我能不止一次地+1這個我個人用「傳遞上下文作爲參數」並且對此感到可怕...... – mfrankli 2012-04-13 15:15:48
子類化應用程序有什麼問題? – 2012-04-13 15:16:03