3

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.

1 Answer 1

6

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.

Sign up to request clarification or add additional context in comments.

3 Comments

I want to replace DetailsFragment with another fragment. I should do this with onclick a button.?
@Santhosh_pulliman: You are welcome to use whatever trigger you like. However, you have to replace a fragment, not put an activity or fragment inside a fragment.
Thank you... this what i too found out

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.