android如何为片段按钮设置setOnClickListener

Roy*_*ley 4 android nullpointerexception fragment

我有一个活动和一个片段.片段上有一个按钮.

我加载片段:

fragment = new FragmentPIN(this);                   
fragmentTransaction.add(R.id.content,fragment);         
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)

然后尝试设置监听器

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {

        Button cmdOK_PIN = (Button)activity.findViewById(R.id.cmdOK_PIN);
        cmdOK_PIN.setOnClickListener(new View.OnClickListener() {                       
            @Override
            public void onClick(View v) {

            }

        });

    } catch (ClassCastException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我总是在setOnClickListener调用上得到一个空指针异常.片段事务在我尝试设置监听器之前提交.或者我认为是.我应该使用其他覆盖来执行此操作吗?

com*_*uru 10

尝试更改将侦听器设置为的位置onActivityCreated而不是onAttach.根据Android 文档:

在创建片段的活动并实例化此片段的视图层次结构时,将调用onActivityCreated.

当您onAttach在Activity设置其视图之前调用它时