对于 Fragment 和 Activity 之间的通信:
活动 > 片段:
使用 this 调用片段的公共方法。
TestFragment testFrag = (TestFragment) getFragmentManager().getFragmentById(R.id.testfragment);
if(testFrag != null && testFrag.isAdded())
testFrag.testMethod("Test");
片段 > 活动
要将消息发送到您需要使用接口的活动,因此在片段类中添加:(不在任何方法中)
public interface testInterface{
public void testMethod(String test);
}
testInterface mCallback;
@Override
public void onAttact(Activity a){
try{
mCallback = (testInterface) a;
}catch(Exception e){
//TODO
}
}
然后用任何方法你可以去调用它:
mCallback.testMethod("hello");
然后为活动制作它implements testInterface
并导入界面
然后在活动中有这个方法
@Override
public void testMethod(String testString){
}
:) 只需要求更多。
编辑
从我第一次阅读你的问题开始,我认为这是你想要的对不起,仍然可以涵盖你想要的。
我认为您要求的只是一个 onItemClick 方法,对吗?
所以在界面中你可以有
public void onItemClicked(AdapterView<?> parent, View view, int position, long id);
然后当在片段中调用 onItemClick 时,您可以在其中使用它
mCallback.onItemClicked(parent, view, position, id);
然后在活动中,鉴于它实现了您可以拥有的接口
@Override
public void onItemClicked(AdapterView<?> parent, View view, int position, long id){
}