0

私は基本的に Activity や FragmentActivity などのクラスを上書き (拡張) し、この基本クラスを拡張する他のクラスで使用できるメソッドを定義することでカスタム機能を追加する基本クラスを作成しています。

基本的に、次の場合の構造:

CustomActivity (extends)->BaseActivity (extends)->Activity

また

CustomActivity (extends)->BaseFragmentActivity (extends)->FragmentActivity

この状況での基底クラスはhmFragmentActivityand 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) への静的参照を作成できません

4

0 に答える 0