[英]How to listen click action of the button which is from Activity on fragment?
i have an activity that has a Fragment.I want to listen my button which in my activity from my fragment. 我有一个带有Fragment.I的活动,我想听我在我的活动中来自我的片段的按钮。 Sample Code is here;
示例代码在这里;
MainActivity 主要活动
OnSearchClickListener searchListener;
@Override
protected void onCreate(Bundle savedInstanceState){
......
}
myButton.setOnclickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
searchListener.OnSearchClick();
}
});
myFragment myFragment
public class MyFragment extends Fragment implements OnSearchClickListener{
........
@Override
public void OnSearchClick() {
Toast.makeText(context,"This message from fragment",......
}
Listener 听众
public interface OnSearchClickListener {
public void OnSearchClick();
} }
i used this structure. 我用这种结构。 but it gave me nullpointerexception.
但是它给了我nullpointerexception。 Do you tell me how can i listen a button which in an Activity from a fragment ?
你告诉我如何听片段中一个活动中的按钮吗?
Do you tell me how can i listen a button which in an Activity from a fragment ?
你告诉我如何听片段中一个活动中的按钮吗?
Doing in right way but forget to initialize searchListener
object using Fragment object which currently adding in FragmentManager. 这样做是正确的,但是忘记使用当前添加在FragmentManager中的Fragment对象初始化
searchListener
对象。 do it as: 这样做:
MyFragment mFragment = new MyFragment();
...
ft.add(R.id.content, mFragment).commit();
searchListener=(OnSearchClickListener)mFragment;
Now use searchListener
object for calling OnSearchClick
from Activity on Button click. 现在,使用
searchListener
对象从“单击按钮的活动”中调用OnSearchClick
。
You just have to initialize OnSearchClickListener searchListener;
您只需要初始化
OnSearchClickListener searchListener;
inside your onCreate method from the MainActivity. 在MainActivity的onCreate方法中。
You should have something like this in you onCreate: 您应该在onCreate中包含以下内容:
MyFragment frag = new MyFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.main_activity_container, frag);
ft.commit();
before beginning the transaction, you do this: 在开始交易之前,请执行以下操作:
searchListener = (OnSearchClickListener) frag;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.