方法onAttach(Activity)已弃用,无法实现onAttach(Context)

时间:2015-10-29 11:44:50

标签: java android android-studio

由于onAttach(Activity)已被弃用,因此无法运行此代码:

public void onClick(View v) {
    if (v == loginButton){
        application.getAuth().getUser().setIsLogedIn(true);
        callbacks.onLoggedIn();
    }
}

public void onAttach(Activity activity){
    super.onAttach(activity);
    callbacks = (Callbacks) activity;
}

public interface Callbacks{
    void onLoggedIn();
}

现在我收到java.lang.NullPointerException因为callbacks.onLoggedIn()返回null

我也试过了:

  public void onAttach(Context context){
        super.onAttach(context);
        callbacks = (Callbacks) context.getApplicationContext();
    }

1 个答案:

答案 0 :(得分:0)

Herehere您可以找到关于您的问题的充分理由的讨论。这些帖子将有助于更好地理解这个问题。

以下是一些让您快速前进的提示:

1)在您的情况下,您可以使用context以及activity

public void onAttach(Context context){
    super.onAttach(context);
    if(context instanceof Callbacks){
        callbacks = (Callbacks) context;
    }
}

2)附加片段后,您始终可以使用getActivity()方法

获取父级活动