2014-10-20 21 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

那那家伙。:)