Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Android Fragments Introducing Fragments Adding a Fragment

Start with the NewsFragment and return a View in its onCreateView method. Use the 'R.layout.fragment_news' layout id.

i have no idea how to do this

NewsFragment.java
public class NewsFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        return null;
    }
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }
}

1 Answer

Kieran Tross
Kieran Tross
8,266 Points

this is the first part

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

  View view = inflater.inflate(R.layout.fragment_news, container, false);
    return view;
}

this is the second part. i've also placed a shorter way to implement your fragment into your class. the way in the video is super long but my other route is the better option.

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

  NewsFragment fragment = new NewsFragment();

   FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.placeholder, fragment);
    fragmentTransaction.commit();
}

The way below is even shorter

newListFragment = new ListFragment();

           getFragmentManager()
                   .beginTransaction()
                   .add(R.id.placeHolder,newListFragment)
                   .commit();