如果扩展抽象BaseActivity,为什么全局变量变为null

时间:2014-10-20 10:35:39

标签: java android

我有一个像下面这样的BaseActivity ......其中我的接口全局对象在超类beame null。

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(){

       }

}

为什么我的接口变量变为null。请帮帮我这个

2 个答案:

答案 0 :(得分:1)

由于我的Google Nexus 7开发人员设置

上的此选项,我解决了所有问题

转到设置 - >开发者选项

在APPS类别中(向下滚动查看),请参阅选项 不要保留活动(一旦用户使用它就会销毁每个活动)。

I found this from this post

那个人。:)

答案 1 :(得分:0)

您将一个活动MainActivity传递给BasePickerActivity,但当BasePickerActivity处于活动状态时,MainActivity为null。基本上,您的代码无效;你应该使用Fragments来做这类事情。