Android 我在一项活动中的4个片段中有4个不同的图表,但它不起作用?
我想将一个活动中的4个图表显示为4个片段。我使用achartengine绘制折线图、条形图、饼图、油炸圈饼图;我有每个图表的图表类和片段类,还有一个ChartItemEntity类,我的主要类是ChartsFragmentActivity, 我不知道哪里是我的错,有人能帮忙吗 我的图表碎片活动类:Android 我在一项活动中的4个片段中有4个不同的图表,但它不起作用?,android,android-fragments,charts,Android,Android Fragments,Charts,我想将一个活动中的4个图表显示为4个片段。我使用achartengine绘制折线图、条形图、饼图、油炸圈饼图;我有每个图表的图表类和片段类,还有一个ChartItemEntity类,我的主要类是ChartsFragmentActivity, 我不知道哪里是我的错,有人能帮忙吗 我的图表碎片活动类: public class ChartsFragmentActivity extends Activity { /** Called when the activity is first create
public class ChartsFragmentActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public LineFragment LineChart_Show(View view) {
LineFragment _containerLineChart = (LineFragment) getFragmentManager().findFragmentById(R.id.lfLineFragment);
return (_containerLineChart);
}
public BarFragment BarChart_Show(View view) {
BarFragment _containerBarChart = (BarFragment) getFragmentManager().findFragmentById(R.id.bfBarFragment);
return (_containerBarChart);
}
public PieFragment PieChart_Show(View view) {
PieFragment _containerPieChart = (PieFragment) getFragmentManager().findFragmentById(R.id.pfPieFragment);
return (_containerPieChart);
}
public DoughnutFragment dounutChart_Show(View view) {
DoughnutFragment continer = (DoughnutFragment) getFragmentManager().findFragmentById(R.id.dfDonutFragment);
return (continer);
}
}
我的ChartItemEntity
public class ChartItemEntity {
public String Caption;
public double Value;
public int Color;
}
折线图:
public class LineChart extends Activity {
private GraphicalView mChart;
private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
private XYSeries mCurrentSeries;
private XYSeriesRenderer mCurrentRenderer;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.line_continer);
List<ChartItemEntity> items = new ArrayList<ChartItemEntity>();
items.add(GetChartItemEntity("Amir", 20));
items.add(GetChartItemEntity("Doctor", 15));
items.add(GetChartItemEntity("Hassan", 18));
items.add(GetChartItemEntity("Zahra", 7));
ShowData(items);
}
public ChartItemEntity GetChartItemEntity(String caption, double value)
{
ChartItemEntity item = new ChartItemEntity();
item.Caption = caption;
item.Value = value;
return item;
}
public void ShowData(List<ChartItemEntity> items)
{
mCurrentSeries = new XYSeries("Sample Data");
mDataset.addSeries(mCurrentSeries);
mCurrentRenderer = new XYSeriesRenderer();
mRenderer.addSeriesRenderer(mCurrentRenderer);
mRenderer.setInScroll(true);
mRenderer.setXAxisMin(0);
mRenderer.setXAxisMax(items.size());
mRenderer.setBarSpacing(0.2);
mRenderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));
mRenderer.setAxesColor(Color.WHITE);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setPanEnabled(true, true);
mRenderer.setYLabelsAlign(Align.CENTER);
mCurrentRenderer.setFillPoints(false);
mCurrentRenderer.setColor(Color.GREEN);
for (int i = 0; i < items.size(); i++)
{
ChartItemEntity item = items.get(i);
mRenderer.addXTextLabel(i, item.Caption);
mCurrentSeries.add(i, item.Value);
}
if (mChart != null) {
mChart.repaint();
}
}
@Override
protected void onResume() {
super.onResume();
if (mChart == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.line_chart);
mChart = ChartFactory.getLineChartView(this, mDataset, mRenderer);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(10);
mChart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
Toast.makeText(LineChart.this, "No chart element was clicked", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(LineChart.this, "Chart element data point index " + (seriesSelection.getPointIndex() + 1) + " was clicked" + " point value=" + seriesSelection.getValue(), Toast.LENGTH_SHORT).show();
}
}
});
mChart.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
Toast.makeText(LineChart.this, "No chart element was long pressed", Toast.LENGTH_SHORT);
return false;
}
else {
Toast.makeText(LineChart.this, "Chart element data point index " + seriesSelection.getPointIndex() + " was long pressed", Toast.LENGTH_SHORT);
return true;
}
}
});
layout.addView(mChart, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
else {
mChart.repaint();
}
}
}
嘿,欢迎来到苏。您需要重新表述您的标题,因为“不起作用”将关闭此问题;这条线没有任何作用,您不需要尝试捕捉布局膨胀。我猜您正在得到nullpointer异常,但由于一般的try-catch,您并没有在日志猫中看到错误警告
@SuppressWarnings("unused")
private ViewGroup _containerLineChart;
@SuppressWarnings("unused")
private LayoutInflater _inflaterLineChart;
@Override
public View onCreateView(LayoutInflater inflaterLineChart, ViewGroup containerLineChart, Bundle savedInstanceState) {
// TODO Auto-generated method stub
_containerLineChart = containerLineChart;
_inflaterLineChart = inflaterLineChart;
try {
return inflaterLineChart.inflate(R.layout.line_continer, containerLineChart, false);
}
catch (Exception ex)
{
Log.e(ex.getMessage(), "");
return null;
}
}
}