我有一个带有Fragment.I的活动,我想听我在我的活动中来自我的片段的按钮。示例代码在这里;

主要活动

  OnSearchClickListener searchListener;


@Override
protected void onCreate(Bundle savedInstanceState){
......
}


myButton.setOnclickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            searchListener.OnSearchClick();
        }
    });


myFragment

public class MyFragment extends Fragment implements OnSearchClickListener{
........
 @Override
public void OnSearchClick() {

   Toast.makeText(context,"This message from fragment",......
}


听众

public interface OnSearchClickListener {
public void OnSearchClick();


}

我用这种结构。但是它给了我nullpointerexception。您能告诉我如何从片段中收听“活动”中的按钮吗?

最佳答案

你能告诉我如何从一个活动中听一个按钮吗?
  碎片?


这样做是正确的,但是忘记使用当前添加在FragmentManager中的Fragment对象初始化searchListener对象。这样做:

MyFragment  mFragment = new MyFragment();
...
ft.add(R.id.content, mFragment).commit();
searchListener=(OnSearchClickListener)mFragment;


现在,使用searchListener对象从“单击按钮的活动”中调用OnSearchClick

08-04 08:03