android在片段中实现侦听器
我是Android开发的新手。我想在我的片段中添加一个监听器,点击按钮将发送一条消息。我需要在我的主片段类中听这个,以便我的活动可以访问这个主片段并处理消息。我还需要删除主片段中的侦听器。那么我如何实现这一点呢 编辑 我有android在片段中实现侦听器,android,Android,我是Android开发的新手。我想在我的片段中添加一个监听器,点击按钮将发送一条消息。我需要在我的主片段类中听这个,以便我的活动可以访问这个主片段并处理消息。我还需要删除主片段中的侦听器。那么我如何实现这一点呢 编辑 我有MyFragment sendMessage(message)是MyFragment中的一种方法,它有一个按钮点击。需要在这里实现侦听器吗 在main片段中 如何在此处处理此sendMessage事件并发送到MAinActivity 该流程类似于MyFragment(child
MyFragment
sendMessage(message)
是MyFragment
中的一种方法,它有一个按钮点击。需要在这里实现侦听器吗
在main片段中
如何在此处处理此sendMessage
事件并发送到MAinActivity
该流程类似于
MyFragment(childfragment)->MAinFragment->MainActivity
,用于在您的活动和您可以访问的片段之间进行通信。其基本思想是在给定片段内定义一个接口,并让活动实现该接口
一旦它实现了该接口,您就可以在它覆盖的方法中执行任何您想要的操作
要帮助您了解一些代码级别的详细信息,您可以参考
希望这会有帮助 对于活动和片段之间的通信,您可以使用接口。其基本思想是在给定片段内定义一个接口,并让活动实现该接口 一旦它实现了该接口,您就可以在它覆盖的方法中执行任何您想要的操作 要帮助您了解一些代码级别的详细信息,您可以参考
希望这会有帮助 在fragment类中,假设MyFragment.java创建一个接口
public interface MyFragmentInterfacer{
void onButtonClick(String msg);
}
MyFragmentInterfacer fragmentInterfacer;
//Override this function as below to set fragmentInterfacer
@Override
public void onAttach(Context context){
fragmentInterfacer = (MyFragmentInterfacer)context;
}
public class MainActivity implements MyFragment.MyFragmentInterfacer{
.
.
}
以及在何处调用此函数
myButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if(fragmentInterfacer != null){
fragmentInterfacer.onButtonClick("This is my Message");
}
}
});
然后在您希望获取此消息的主要活动中,实现此接口
public interface MyFragmentInterfacer{
void onButtonClick(String msg);
}
MyFragmentInterfacer fragmentInterfacer;
//Override this function as below to set fragmentInterfacer
@Override
public void onAttach(Context context){
fragmentInterfacer = (MyFragmentInterfacer)context;
}
public class MainActivity implements MyFragment.MyFragmentInterfacer{
.
.
}
然后在MainActivity中实现接口功能
@Override
public void onButtonClick(String msg){
//Do something with this message
}
要删除此侦听器,请使用
fragmentInterfacer = null;
当您想禁用此侦听器时,在片段类中
或者您可以从按钮中删除onClickListener
myButton.setOnClickListener(null);
或禁用单击按钮
myButton.setClickable(false);
在fragment类中,假设MyFragment.java创建一个接口
public interface MyFragmentInterfacer{
void onButtonClick(String msg);
}
MyFragmentInterfacer fragmentInterfacer;
//Override this function as below to set fragmentInterfacer
@Override
public void onAttach(Context context){
fragmentInterfacer = (MyFragmentInterfacer)context;
}
public class MainActivity implements MyFragment.MyFragmentInterfacer{
.
.
}
以及在何处调用此函数
myButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if(fragmentInterfacer != null){
fragmentInterfacer.onButtonClick("This is my Message");
}
}
});
然后在您希望获取此消息的主要活动中,实现此接口
public interface MyFragmentInterfacer{
void onButtonClick(String msg);
}
MyFragmentInterfacer fragmentInterfacer;
//Override this function as below to set fragmentInterfacer
@Override
public void onAttach(Context context){
fragmentInterfacer = (MyFragmentInterfacer)context;
}
public class MainActivity implements MyFragment.MyFragmentInterfacer{
.
.
}
然后在MainActivity中实现接口功能
@Override
public void onButtonClick(String msg){
//Do something with this message
}
要删除此侦听器,请使用
fragmentInterfacer = null;
当您想禁用此侦听器时,在片段类中
或者您可以从按钮中删除onClickListener
myButton.setOnClickListener(null);
或禁用单击按钮
myButton.setClickable(false);
欢迎收看stackoverflow。您正在尝试什么?欢迎收看stackoverflow。你在试什么?