私は基本的に、 Activity や FragmentActivity などのクラスを上書き (拡張) し、この基本クラスを拡張する他のクラスで使用できるメソッドを定義することでカスタム機能を追加する基本クラスを作成しています。
基本的に、次の場合の構造:
CustomActivity (extends)->BaseActivity (extends)->Activity
また
CustomActivity (extends)->BaseFragmentActivity (extends)->FragmentActivity
この状況での基底クラスはhmFragmentActivity
and itと呼ばれextends FragmentActivity
ます。内部でカスタムメソッドを定義しましたhmFragmentActivity
:
public String pref(String key, String defaultVal) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
return prefs.getString(key, defaultVal);
}
基本的に、これはヘルパー メソッドであり、他のすべてのアクティビティで使用できるようにするためhmFragmentActivity
に、FragmentActivity
.
ただし、任意のアクティビティから呼び出そうとするとprefs()
、IDE でエラーとして強調表示されます。
次に例を示します。
public class FuelEconomy extends hmFragmentActivity {
// In some method:
if(pref("fuel_usage_liter", "")==""){
Log.d("fuel", "Fuel set");
}
}
上で強調表示するpref()
と、IDE は次のように表示します。
タイプ hmFragmentActivity から非静的メソッド pref(String) への静的参照を作成できません