As hdemirchian said, make sure to use:
import android.support.v4.app.Fragment;
And also make sure that the Activity that is using the fragment(s) extends FragmentActivity instead of the regular Activity,
import android.support.v4.app.FragmentActivity;
to get the FragmentActivity class.
The exception android.view.InflateException: Binary XML file line: #… Error inflating class fragment might happen if you manipulate with getActivity() inside your fragment before onActivityCreated() get called. In such case you receive a wrong activity reference and can’t rely on that.
For instance the next pattern is wrong:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
final View view = inflater.inflate(R.layout…, container, false);
Button button = getActivity().findViewById(R.id…);
button.setOnClickListener(…); – another problem: button is null
return view;
}
Correct pattern #1
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
final View view = inflater.inflate(R.layout…, container, false);
Button button = view.findViewById(R.id…);
button.setOnClickListener(…);
return view;
}
Correct pattern #2
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Button button = getActivity().findViewById(R.id…);
button.setOnClickListener(…);
}