Android アプリに Convert や Utils などのヘルパー クラスが必要です。私が持っている典型的な問題は次のとおりです。
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() が何かわからないため、上記はもちろん失敗します。したがって、2つのオプションが残ります。
- ゴミであるヘルパーメソッドを使用するたびにコンテキストを渡します
アプリケーションをサブクラス化し、マニフェストを変更してから、次のように参照を作成します。
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()
私がそれを必要とするすべてのことをします。
質問: これは正しくないはずです。エレガントな進め方は何ですか?