Como usar o gráfico dentro do fragmento no Android usando a biblioteca Achartengine?
Eu tenho uma atividade 3ChartPerTabActivity onde eu tenho 3 abas fragmento com Viepager.Each vista fragmento tem cor diferente.Ate agora está funcionando.
Meu problema ocorre quando eu tento adicionar um PieChart ao layout primeiro fragmento guia ... Eu quero fazer um gráfico por guia.Por exemplo, primeiro guia um gráfico de pizza e.t.c.
Eu decidi usarAchartengine
biblioteca.Eu tentei, mas eu recebo"NullPointerException"
.
Aqui está o tab_frag1_layout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/chart_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
</LinearLayout>
Aqui está o Tab1Fragment:
import java.text.DecimalFormat;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.SeriesSelection;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Tab1Fragment extends Fragment {
private GraphicalView mChartView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
// Pie Chart Slice Names
final String[] status = new String[] { "Normal", "High", "Over" };
// Pie Chart Slice Values
double[] distribution = { 6, 3, 1 };
// Color of each Pie Chart Slices
int[] colors = { Color.GREEN, Color.YELLOW, Color.RED };
// Instantiating CategorySeries to plot Pie Chart
CategorySeries distributionSeries = new CategorySeries(" General ");
for (int i = 0; i < distribution.length; i++) {
// Adding a slice with its values and name to the Pie Chart
distributionSeries.add(status[i], distribution[i]);
}
// Instantiating a renderer for the Pie Chart
DefaultRenderer defaultRenderer = new DefaultRenderer();
for (int i = 0; i < distribution.length; i++) {
SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();
seriesRenderer.setColor(colors[i]);
seriesRenderer.setDisplayChartValues(true);
// Adding the renderer of a slice to the renderer of the pie chart
defaultRenderer.addSeriesRenderer(seriesRenderer);
}
defaultRenderer.setChartTitle("General");
defaultRenderer.setChartTitleTextSize(20);
defaultRenderer.setZoomButtonsVisible(true);
/////////////////////////// Aqui eu tenho exceção ponteiro nulo ///////////////// ////
// Getting a reference to view group linear layout chart_container
LinearLayout chartContainer = (LinearLayout) getView().findViewById(
R.id.chart_container);
////////////////////////////////////////////////// //////////////////////////////////
// Getting PieChartView to add to the custom layout
mChartView = ChartFactory.getPieChartView(getActivity(),
distributionSeries, defaultRenderer);
// Adding the pie chart to the custom layout
chartContainer.addView(mChartView);
return (LinearLayout) inflater.inflate(R.layout.tab_frag1_layout,
container, false);
}
}
Aqui está uma captura de tela: