0

Fragments在 Android 下使用多个,并且对如何从嵌入式应用程序发送和接收数据感到困惑。

为了简单的解释,我有一个ListFragment和一个MapFragment使用这里解释的方法。这意味着List生活在ListFragment类中,但是MapActivityActivityLocalActivityManagerFragment.

一切都适用于个人FragmentsListsMapFragment. 我也了解如何使用getFragmentManager()来获取个人Fragments并使用他们的事件。但是,我无法使用此方法访问MapActivity. 如果我单击 上的一个项目,如果我不能简单地goToLocation使用?MapActivityListViewgetFragmentManager

4

1 回答 1

1

对于 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){

}
于 2012-07-18T22:07:11.543 回答