我有一个带有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
。