2015-10-29 28 views
0

由于onAttach(Activity)已被弃用,遇到问题我有运行此代码的麻烦:方法onAttach(活动)已过时实施onAttach(上下文)

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(); 
    } 

回答

0

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

这里只是一些提示,让您迅速转移:

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

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

2)您的片段连接你之后可以始终通过getActivity()方法获得父母活动方法

相关问题