无法从[MyClassWhichIsExtendingActivity]类型对非静态方法myMethod(String)进行静态引用

时间:2013-05-25 13:19:14

标签: android inheritance android-activity android-fragmentactivity

我基本上创建了一个 base 类,它将覆盖(扩展)类,如Activity或FragmentActivity,并通过定义应该可用于任何其他类的方法来添加自定义功能,扩展此基地类。

结构如果以下,基本上是:

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

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

此情况下的基类称为hmFragmentActivityextends 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会说:

  

无法对非静态方法pref(String)进行静态引用   来自hmFragmentActivity类型

0 个答案:

没有答案