Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 阿卡捷宁重涂_Android_Charts_Android Linearlayout_Repaint_Achartengine - Fatal编程技术网

Android 阿卡捷宁重涂

Android 阿卡捷宁重涂,android,charts,android-linearlayout,repaint,achartengine,Android,Charts,Android Linearlayout,Repaint,Achartengine,我在webservice中有一个数据连接。在Assynctask中,我每5秒钟获取一次数据。 数据到达后,我制作了新的数据集,因为mChartView生活,我只是重新绘制。这就是我的问题。折线图重新绘制不会重新生成图表,只需在最后一个折线图的顶部绘制一个新的折线图即可。当然还有2-3分钟的月经期:( 这是我的代码: class GetData extends AsyncTask<Void, String, Void> { private ArrayList<Strin

我在webservice中有一个数据连接。在Assynctask中,我每5秒钟获取一次数据。 数据到达后,我制作了新的数据集,因为mChartView生活,我只是重新绘制。这就是我的问题。折线图重新绘制不会重新生成图表,只需在最后一个折线图的顶部绘制一个新的折线图即可。当然还有2-3分钟的月经期:(

这是我的代码:

class GetData extends AsyncTask<Void, String, Void> {

    private ArrayList<String> Alldata = new ArrayList<String>();
    public XYMultipleSeriesDataset datasetOut;
    public XYMultipleSeriesRenderer mRendererOut;

    @Override
    protected Void doInBackground(Void... unused) {

        Alldata.clear();
        Alldata = DataFromWeb.getChartDataNew("&name=XXX", "XXX");

        return (null);
    }

    @Override
    protected void onPostExecute(Void unused) {


        datasetOut = CCChart.getDataSet(getBaseContext(), Alldata);
        mRendererOut = CCChart.getRendererPortrait(getBaseContext());


        Log.d("Debug", "alldatasize: " + Alldata.size());
        Log.d("Debug", "dataset " + datasetOut.getSeriesCount() );

        if (mChartView != null) {
            mChartView.repaint();

            Log.v("CC_trace", "CCChartRepaint");

        } else {

            mChartView = ChartFactory.getLineChartView(getBaseContext(), datasetOut , mRendererOut);

                layout.addView(mChartView, new LayoutParams(
                        LayoutParams.WRAP_CONTENT, getHeight()));

                Log.v("CC_trace", "CCChartGenerate");   

        }




    }



} 
class GetData扩展异步任务{
private ArrayList Alldata=new ArrayList();
公共数据集数据输出;
公共XY多址报告器MRenderOut;
@凌驾
受保护的空位背景(空位…未使用){
Alldata.clear();
Alldata=DataFromWeb.getChartDataNew(“&name=XXX”、“XXX”);
返回(空);
}
@凌驾
受保护的void onPostExecute(未使用的void){
datasetOut=CCChart.getDataSet(getBaseContext(),Alldata);
mRendererOut=CCChart.getrenderrotatic(getBaseContext());
Log.d(“调试”,“alldatasize:+Alldata.size());
Log.d(“调试”、“数据集”+datasetOut.getSeriesCount());
如果(mChartView!=null){
mChartView.repaint();
Log.v(“CC_trace”、“CCChartRepaint”);
}否则{
mChartView=ChartFactory.getLineChartView(getBaseContext(),datasetOut,MrenderOut);
layout.addView(mChartView,新的LayoutParams(
LayoutParams.WRAP_内容,getHeight());
Log.v(“CC_跟踪”、“CCChartGenerate”);
}
}
} 
也许我没有在适当的位置调用repaint():)

图表图像


thx帮助…

在我的帮助中,我从不叫重新油漆。我只是重新创造旧的

所以像这样:

    @Override
    protected void onPostExecute(Void unused) {

    datasetOut = CCChart.getDataSet(getBaseContext(), Alldata);
    mRendererOut = CCChart.getRendererPortrait(getBaseContext());

    Log.d("Debug", "alldatasize: " + Alldata.size());
    Log.d("Debug", "dataset " + datasetOut.getSeriesCount() );

    mChartView = ChartFactory.getLineChartView(getBaseContext(), datasetOut , mRendererOut);

    layout.removeAllViews();
    layout.addView(mChartView, new LayoutParams(LayoutParams.WRAP_CONTENT, getHeight()));
    Log.v("CC_trace", "CCChartGenerate");   
}