Santhosh_pulliman
Santhosh_pulliman

Reputation: 2139

Android fragment with activities inside

Fragment

I just started with fragment design for HoneyComb. I created two fragments. When i click the button 'santhosh'(in left side of pic), one button is created in the another fragment(right side of pic). Next I want to make listener for next button, so that next activity is created in the same fragment(ie. new activity within the right side fragment). My codes below. main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment class="com.fragment.example.Titles"
 android:id="@+id/titles" android:layout_weight="1"
 android:layout_width="0px"
 android:layout_height="match_parent" />
<FrameLayout android:id="@+id/details" android:layout_weight="1"
        android:layout_width="0px"
        android:layout_height="match_parent" />

</LinearLayout>

FragmentExample.java

public class FragmentExample extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


}
 }

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;
}
}

From the DetailsFragment.java i want to display a new Activity with that fragment.

Upvotes: 3

Views: 6544

Answers (1)

CommonsWare
CommonsWare

Reputation: 1006564

Next I want to make listener for next button, so that next activity is created in the same fragment(ie. new activity within the right side fragment).

This is not supported, sorry. Nested activities are deprecated.

Upvotes: 6

Related Questions