我基本上是在创建一个基类,它将覆盖(扩展)诸如 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) 进行静态引用