包含活动的Android片段

包含活动的Android片段,android,android-fragments,Android,Android Fragments,我刚开始为蜂巢设计碎片。我创建了两个片段。当我点击按钮“santhosh”(在图的左侧)时,一个按钮在另一个片段(图的右侧)中创建。接下来,我想让listener for Next按钮,以便在同一片段中创建下一个活动(即右侧片段中的新活动)。我的代码如下。 main.xml Titles.java public class Titles extends Fragment { public FragmentTransaction ft; @Override public View onCreate

我刚开始为蜂巢设计碎片。我创建了两个片段。当我点击按钮“santhosh”(在图的左侧)时,一个按钮在另一个片段(图的右侧)中创建。接下来,我想让listener for Next按钮,以便在同一片段中创建下一个活动(即右侧片段中的新活动)。我的代码如下。 main.xml

Titles.java

public class Titles extends Fragment {
public FragmentTransaction ft;
@Override
public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.main1, null);
    Button button1 = (Button)v.findViewById(R.id.button1);
    button1.setText("santhosh");
    button1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
             DetailsFragment details = (DetailsFragment)
                        getFragmentManager().findFragmentById(R.id.details);
                if (details == null || details.getShownIndex() != 1) {
                    // Make new fragment to show this selection.
                    details = DetailsFragment.newInstance(1);

                    // Execute a transaction, replacing any existing
                    // fragment with this one inside the frame.
                    ft
                            = getFragmentManager().beginTransaction();
                    ft.add(R.id.details, details, "detail");
                    ft.setTransition(
                            FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                    ft.commit();
                }
        }

    });
    return v;

}
}
DetailsFragment.java

public class DetailsFragment extends Fragment {
/**
 * Create a new instance of DetailsFragment, initialized to
 * show the text at 'index'.
 */
Titles title = new Titles();
String[] titles = {"Title1", "Title2", "Title3", "Title4"};
public static DetailsFragment newInstance(int index) {
    DetailsFragment f = new DetailsFragment();

    // Supply index input as an argument.
    Bundle args = new Bundle();
    args.putInt("index", index);
    f.setArguments(args);

    return f;
}

public int getShownIndex() {
    return getArguments().getInt("index", 0);
}

@Override
public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
    if (container == null) {
        // Currently in a layout without a container, so no
        // reason to create our view.
        return null;
    }
    Button button = new Button(getActivity());
    button.setText("Next");
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }

    });
    return button;
}
}
在DetailsFragment.java中,我想显示一个带有该片段的新活动

接下来,我想让listener for Next按钮,以便在同一片段中创建下一个活动(即右侧片段中的新活动)


抱歉,这不受支持。嵌套活动已弃用。

我想用另一个片段替换DetailsFragment。我应该点击一个按钮来做这件事。@Santhosh_pulliman:欢迎你使用任何你喜欢的触发器。但是,您必须替换片段,而不是将活动或片段放入片段中。谢谢。。。这也是我发现的
public class Titles extends Fragment {
public FragmentTransaction ft;
@Override
public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.main1, null);
    Button button1 = (Button)v.findViewById(R.id.button1);
    button1.setText("santhosh");
    button1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
             DetailsFragment details = (DetailsFragment)
                        getFragmentManager().findFragmentById(R.id.details);
                if (details == null || details.getShownIndex() != 1) {
                    // Make new fragment to show this selection.
                    details = DetailsFragment.newInstance(1);

                    // Execute a transaction, replacing any existing
                    // fragment with this one inside the frame.
                    ft
                            = getFragmentManager().beginTransaction();
                    ft.add(R.id.details, details, "detail");
                    ft.setTransition(
                            FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                    ft.commit();
                }
        }

    });
    return v;

}
}
public class DetailsFragment extends Fragment {
/**
 * Create a new instance of DetailsFragment, initialized to
 * show the text at 'index'.
 */
Titles title = new Titles();
String[] titles = {"Title1", "Title2", "Title3", "Title4"};
public static DetailsFragment newInstance(int index) {
    DetailsFragment f = new DetailsFragment();

    // Supply index input as an argument.
    Bundle args = new Bundle();
    args.putInt("index", index);
    f.setArguments(args);

    return f;
}

public int getShownIndex() {
    return getArguments().getInt("index", 0);
}

@Override
public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
    if (container == null) {
        // Currently in a layout without a container, so no
        // reason to create our view.
        return null;
    }
    Button button = new Button(getActivity());
    button.setText("Next");
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }

    });
    return button;
}
}