Вы делаете findViewById()
до того, как раздуте компоновку, что означает, что R.id.graph
на данный момент не существует.Немного измените свой код:
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View fragView = inflater.inflate(R.layout.graphview, container, false); //inflate up here and assign to variable
GraphView graph = fragView.findViewById(R.id.graph); //change getActivity() to fragView
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[] {
new DataPoint(0, 1),
new DataPoint(1, 5),
new DataPoint(2, 3)
});
graph.addSeries(series);
return fragView; //return fragView
}
В качестве альтернативы, переместите свой код в onViewCreated()
:
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.graphview, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
GraphView graph = view.findViewById(R.id.graph);
LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[] {
new DataPoint(0, 1),
new DataPoint(1, 5),
new DataPoint(2, 3)
});
graph.addSeries(series);
}
Только примечание: не используйте getActivity().findViewById()
во фрагменте.Если этот фрагмент не присоединен к действию, это вызовет другие проблемы.Используйте view
в onViewCreated()
или getView()
в другом месте.