我基本上创建了一个 base 类,它将覆盖(扩展)类,如Activity或FragmentActivity,并通过定义应该可用于任何其他类的方法来添加自定义功能,扩展此基地类。
结构如果以下,基本上是:
CustomActivity (extends)->BaseActivity (extends)->Activity
或
CustomActivity (extends)->BaseFragmentActivity (extends)->FragmentActivity
此情况下的基类称为hmFragmentActivity
,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会说:
无法对非静态方法pref(String)进行静态引用 来自hmFragmentActivity类型