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