converting activity into fragment

In fragment onCreate method is usually written as-

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

And Use-

final MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.rajath);
Button play_button = (Button) view.findViewById(R.id.button3);

If you want to read more about fragments. Check this link.


  1. Fragment has a method called onCreateView(LayoutInflater, ViewGroup, Bundle). Override it, inflate using the layout and return the view.
  2. Since create method expects a Context, pass it using getActivity()
  3. findViewById(int) can be called as getView().findViewById(R.id.button3)

Here is a sample code:

public class Rajathmusic extends Fragment {

    private static final String TAG = "MyActivity";

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

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        Log.v(TAG, "Initializing sounds...");

        final MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.rajath);

        View v = getView();

        Button play_button = (Button) v.findViewById(R.id.button3);

        play_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Log.v(TAG, "Playing sound...");
                mp.start();
            }
        });
        Log.v(TAG, "Sounds initialized.");
    }

}

Read more about Fragment lifecycle here to know why I've put the code in onActivityCreated and not onCreate