如何监听片段上 Activity 按钮的点击动作?
How to listen click action of the button which is from Activity on fragment?
我有一个 activity 有一个 Fragment.I 想听我的按钮,它在我的片段中的 activity 中。示例代码在这里;
主要Activity
OnSearchClickListener searchListener;
@Override
protected void onCreate(Bundle savedInstanceState){
......
}
myButton.setOnclickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
searchListener.OnSearchClick();
}
});
我的片段
public class MyFragment extends Fragment implements OnSearchClickListener{
........
@Override
public void OnSearchClick() {
Toast.makeText(context,"This message from fragment",......
}
听众
public interface OnSearchClickListener {
public void OnSearchClick();
}
我用过这个结构。但它给了我空指针异常。你能告诉我如何从片段中收听 Activity 中的按钮吗?
Do you tell me how can i listen a button which in an Activity from a
fragment ?
以正确的方式进行但忘记使用当前添加到 FragmentManager 中的 Fragment 对象初始化 searchListener
对象。这样做:
MyFragment mFragment = new MyFragment();
...
ft.add(R.id.content, mFragment).commit();
searchListener=(OnSearchClickListener)mFragment;
现在使用 searchListener
对象在单击按钮时从 Activity 调用 OnSearchClick
。
您只需在 MainActivity 的 onCreate 方法中初始化 OnSearchClickListener searchListener;
。
你的 onCreate 中应该有这样的东西:
MyFragment frag = new MyFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_activity_container, frag);
ft.commit();
在开始交易之前,您这样做:
searchListener = (OnSearchClickListener) frag;
我有一个 activity 有一个 Fragment.I 想听我的按钮,它在我的片段中的 activity 中。示例代码在这里;
主要Activity
OnSearchClickListener searchListener;
@Override
protected void onCreate(Bundle savedInstanceState){
......
}
myButton.setOnclickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
searchListener.OnSearchClick();
}
});
我的片段
public class MyFragment extends Fragment implements OnSearchClickListener{
........
@Override
public void OnSearchClick() {
Toast.makeText(context,"This message from fragment",......
}
听众
public interface OnSearchClickListener {
public void OnSearchClick();
}
我用过这个结构。但它给了我空指针异常。你能告诉我如何从片段中收听 Activity 中的按钮吗?
Do you tell me how can i listen a button which in an Activity from a fragment ?
以正确的方式进行但忘记使用当前添加到 FragmentManager 中的 Fragment 对象初始化 searchListener
对象。这样做:
MyFragment mFragment = new MyFragment();
...
ft.add(R.id.content, mFragment).commit();
searchListener=(OnSearchClickListener)mFragment;
现在使用 searchListener
对象在单击按钮时从 Activity 调用 OnSearchClick
。
您只需在 MainActivity 的 onCreate 方法中初始化 OnSearchClickListener searchListener;
。
你的 onCreate 中应该有这样的东西:
MyFragment frag = new MyFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_activity_container, frag);
ft.commit();
在开始交易之前,您这样做:
searchListener = (OnSearchClickListener) frag;