2014-10-20 20 views
0

我有一個BaseActivity像bellow ...在超類的我的接口全局對象beame null。爲什麼全局變量變爲null如果擴展抽象BaseActivity

public abstract class BaseActivity extends BaseTabActivity { 
      //did some implementation 
} 


public abstract class BaseTabActivity extends BasePickerActivity { 
    //did some implementation 
} 

public abstract class BasePickerActivity extends Activity { 
    // This is an interface 
     private IOnImagSelected iOnImagSelected; 

     public void imagePicker(IOnImagSelected iOnImagSelected){ 
      this.iOnImagSelected = iOnImagSelected; 
     } 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      // process data and called iOnImagSelected 

        // Here I get null point which mean iOnImagSelected is null 
          iOnImagSelected.onImageSelected(imagepath) 
     } 
} 

現在我有一個像

public class MyActivity extends BaseActivity implements IOnImagSelected { 

     public void onPickImageClick(View v){ 
      imagePicker(this); 
     } 

    @Override 
    poublic void onImageSelected(){ 

     } 

} 

一個活動爲什麼我的接口變量成爲空。請幫我解決這個問題

+0

是onPickImageClick(視圖V)onActivityResult(..) – 2014-10-20 10:55:06

+0

onPickImageClick之前調用調用時,我按下一個BTN。在那個活動 – user3782810 2014-10-20 11:01:29

回答

0

您正在將一個活動MainActivity傳遞給BasePickerActivity,但是當BasePickerActivity處於活動狀態時,MainActivity爲空。基本上,你的代碼是無效的;你應該使用Fragments來處理這類事情。

+0

沒有你沒有得到這我傳遞從MyActivity引用imagePicker()和IOnImagSelected這是一個接口不能創建一個對象iOnImagSelected = new IOnImageSelected();方式.... – user3782810 2014-10-20 10:49:34

+0

對不起,我沒有徹底讀過你的代碼。 – 2014-10-20 11:26:52

+0

請通過代碼注意完全給予答案我正在通過實現的接口不是一個活動。請停止給予清涼飲料。它沒有任何意義... – user3782810 2014-10-20 11:34:20

1

我解決了它所有的hapening因爲我的谷歌Nexus 7開發人員設定

轉到設置 - >開發人員選項

中,在APPS類別(向下滾動才能看到)

這個選項,看到選項 不要保留活動(只要用戶將其隱藏起來,就銷燬所有活動)。

I found this from this post

那那傢伙。:)