2013-06-02 40 views
1

这是我的主要活动:定制听众总是空

​​

而这仅仅是举办自己的比赛片段。

public class GameFragment extends Fragment implements View.OnClickListener { 

    public interface Listener { 
     public void onGameEnded(int score); 
    } 

    Listener mListener = null; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.game_layout, container, false); 

     checkSequence(); 

     return view; 
    } 

    public void setListener(Listener l) { 
     mListener = l; 
    } 


    private void checkSequence() { 
      if (mListener != null) 
       mListener.onGameEnded(score); 
    } 


} 

由于某种原因,mListener始终为空。我已经尝试了其他问题,但他们都没有工作。我究竟做错了什么?

回答

1

我认为你必须重写此两种方法GameFragment

@Override 
    public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    if (activity instanceof Listener) { 
     mListener = (Listener) activity; 
    } else { 
     throw new ClassCastException(activity.toString() 
      + " must implemenet GameFragment.Listener"); 
    } 
    } 

    @Override 
    public void onDetach() { 
    super.onDetach(); 
    mListener= null; 
    } 

为更详细了解此Tutorial

编辑

,不要忘了初始化片段活动

 // Create an instance of GameFragment 
     GameFragment mGameFragment= new GameFragment(); 


     // Add the fragment to the 'fragment_container' Layout 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.fragment_container, mGameFragment).commit();