0

我的应用程序中的主要片段活动具有以下功能

private final void insertFragmentIntoView(final SherlockFragment fragment,
            String tag) {
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.add(R.id.fragment_content, fragment, tag);
        ft.commit();
    }

R.id.fragment_content是一个框架布局,我基本上将一个新片段插入到这个框架中。现在我插入的框架有一个按钮,可以将我带到一个新屏幕。我想要的是我的应用程序中的所有导航都应该在我的 FragmentActivity 中进行。如何使用子片段调用我的 FragmentActivity ?

亲切的问候

4

2 回答 2

0

在您的片段中创建一个侦听器类,您的父活动将实现该侦听器。现在在您的片段中注册侦听器并调用您想要执行某些操作的方法。更多你可以看到这个链接http://developer.android.com/training/basics/fragments/communicating.html

示例片段和活动如何通信。

class MyFragment extends Fragment{

class interface MyFragmentListener {
doSomeAction();
}


MyFragmentListener myListener;
onAttach(){
myListener=(MainActivity )getActivity();
}


onButtonClick(){
myListener.doSomeAction();
}


}

class MainActivity extends FragmentActivity implements MyFragment.MyFragmentListener 
{

doSomeAction(){

//TODO perform some action from your fragment to activity
}

}
于 2013-04-10T07:34:31.223 回答
-1

使用侦听器是在 Fragment 和您的活动之间进行通信的推荐方式。

有关信息,请参阅此 Android文档部分。长话短说,他们只是通过 Activity 类实现了一个侦听器接口,并将 getActivity() 结果转换为一个片段给侦听器。

根据我的个人经验,这非常方便,因为可以让您:

轻松切换底层活动(例如,您在包装活动中托管整个片段以在 3.0 之前兼容,并在 11+ 中托管此片段和其他片段)轻松控制包装活动是否支持回调。只需检查它是否实现了侦听器,如果没有,则执行您的应用程序特定操作。

于 2013-04-10T07:28:00.583 回答