我正在開發一個android應用程序。我的問題是我可以在抽象類中獲取應用程序上下文嗎?它給了我上下文變量的空指針異常,我認爲這可能是因爲我在抽象類中使用它。在抽象類中獲取應用程序上下文
注意:在我的代碼中,我有一個抽象類(抽象類本身擴展了Activity),用於實例化其他類 - Activites。在抽象類中,我創建了一個活動幫助器的實例,這是一個處理應用程序中一些常見活動相關功能的類。該是我的活動輔助類:
public class ActivityHelper {
protected Activity mActivity;
public static ActivityHelper createInstance(Activity activity, Context context) {
return UIUtils.isTablet(context) ?
new ActivityHelperTablet(activity) :
new ActivityHelper(activity);
}
protected ActivityHelper(Activity activity) {
mActivity = activity;
}
}
凡功能isTablet收到我在抽象類中創建一個上下文變量
public static boolean isTablet(Context context) {
// Can use static final constants like HONEYCOMB, declared in later versions
// of the OS since they are inlined at compile time.
return isHoneycomb() ||
((context.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE);
}
BaseActivity的重要組成部分:
public abstract class BaseActivity extends Activity {
Context context = this.getApplicationContext();
final ActivityHelper mActivityHelper = ActivityHelper.createInstance(this, context);
}
但它給了我一個空指針異常。所以我認爲這可能是因爲抽象類。 這是日誌:
06-12 15:59:56.011: E/AndroidRuntime(1206): Caused by: java.lang.NullPointerException
06-12 15:59:56.011: E/AndroidRuntime(1206): at
android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101)
06-12 15:59:56.011: E/AndroidRuntime(1206): at
com.navayo.sec.voip.activities.BaseActivity.<init>(BaseActivity.java:35)
06-12 15:59:56.011: E/AndroidRuntime(1206): at
com.navayo.sec.voip.activities.MainActivity.<init>(MainActivity.java:43)
06-12 15:59:56.011: E/AndroidRuntime(1206): at
java.lang.Class.newInstanceImpl(Native Method)
06-12 15:59:56.011: E/AndroidRuntime(1206): at
java.lang.Class.newInstance(Class.java:1319)
06-12 15:59:56.011: E/AndroidRuntime(1206): at
android.app.Instrumentation.newActivity(Instrumentation.java:1023)
06-12 15:59:56.011: E/AndroidRuntime(1206): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
使用抽象類任務會有一個具體的實施;不確定抽象性如何。 –
這些東西都沒有關係。你的實現有問題。 – DeeV