Ich möchte eine Hilfsklasse wie Convert oder Utils in meiner Android App haben. Typische Frage, die ich habe, ist:Ist Subclassing-Anwendung die einzige Möglichkeit, statische Hilfsmethoden in Android zu implementieren?
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);
}
}
Die oben nicht natürlich, weil Convert keine Ahnung, was GetResources() hat, ist. das lässt mich also zwei Möglichkeiten:
- einem Kontext passieren jedes Mal, wenn ich eine Hilfsmethode verwenden möchten, die
Unterklasse Anwendung Müll ist, mein Manifest ändern, dann einen Verweis erstellen, wie folgt aus:
public class App extends Application { private static Context mContext; @Override public void onCreate() { super.onCreate(); mContext = this; } public static Context getContext() { return mContext; } }
tun dann App.getContext()
überall ich es brauche.
Frage: das kann nicht richtig sein, was ist der elegante Weg, um fortzufahren?
Ich wünschte, ich könnte das mehr als einmal +1 geben - ich persönlich ging mit dem "Passing Context als Argument" und fühlte sich schrecklich daran ... – mfrankli
Was ist los mit Subclassing Application? –