动态添加元素到片段

时间:2014-07-01 09:12:57

标签: android android-fragments

您好我是Android的新手并且正在尝试动态地向Fragment添加内容。

我在Fragments内有两个Activity。对第二点的第一点是这样的:

public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_welcome,
                container, false);
        Button searchActivityBtn = (Button) rootView.findViewById(R.id.SearchActivityBtn);

        searchActivityBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d("##SecondActivity", "search btn click");
                getFragmentManager().beginTransaction()
                    .replace(R.id.welcome_fragment, new searchAnnouncementsFragment()).addToBackStack(null).commit();       
            }
        });                     
        return rootView;
    }
}

第二个Fragment class

    public static class searchAnnouncementsFragment extends Fragment {

    public searchAnnouncementsFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_search,
                container, false);          
        return rootView;
    }

    //public void onStart(){
    // super.onStart();
    // RelativeLayout root = (RelativeLayout) getActivity().findViewById(R.id.annunciContainer);
    // Log.d("##onstart", "root:" + (root == null));
    //}

}

正如您所见,我试图在onStart method中做一些事情,但我总是犯了很多错误,R.id.annunciContainerid的{​​{1}} fragment_search.xml layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id ="@+id/annunciContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:background="@color/white" >

我想要实现的是将FrameLayout之类的元素动态添加到我的Fragment(由上面的RelativeLayout表示)。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您没有提及活动的名称,可以说名称为Activity1,

首先在Activity1

中创建线性布局或框架布局

第二行将以下代码行添加到Activity1,以便将PlaceholderFragment扩展到Activity1中的布局

PlaceholderFragment pf = new PlaceholderFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.annunciContainer, pf,"place_holder");
ft.commit();

用于充气searchAnnouncementsFragment将SearchholderFragment替换为searchAnnouncementsFragment。

答案 1 :(得分:0)

我要搜索的是ListView