Java 如何使用Achartengine库在Android中使用图内片段?

Java 如何使用Achartengine库在Android中使用图内片段?,java,android,android-layout,charts,achartengine,Java,Android,Android Layout,Charts,Achartengine,我有一个活动3ChartPerTabActivity,其中我有3个标签页和Viepager片段。每个片段视图都有不同的颜色。到目前为止都在工作 我的问题发生在我尝试将PieChart添加到第一个选项卡碎片布局时。。。 我想为每个选项卡制作一个图表。例如,第一个选项卡是饼图e.t.c 我决定使用Achartengine库。我尝试了,但得到了“NullPointerException” 以下是选项卡\u frag1\u layout.xml: <LinearLayout xmlns:andro

我有一个活动3ChartPerTabActivity,其中我有3个标签页和Viepager片段。每个片段视图都有不同的颜色。到目前为止都在工作

我的问题发生在我尝试将PieChart添加到第一个选项卡碎片布局时。。。 我想为每个选项卡制作一个图表。例如,第一个选项卡是饼图e.t.c

我决定使用
Achartengine
库。我尝试了,但得到了
“NullPointerException”

以下是选项卡\u frag1\u 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>
////////////////////////////////////////////////////////////////////////////////////

// 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);
    }
}

下面是一个屏幕截图:

getView
在创建视图完成后才会工作: ()

使用在
onCreateView
中膨胀的
视图
,而不是
getView
(),作为在
onCreateView
中“查找”其他视图的起点

例如:

View view = (LinearLayout) inflater.inflate(R.layout.tab_frag1_layout,
                container, false);
LinearLayout chartContainer = (LinearLayout) view.findViewById(
        R.id.chart_container);
...
return view;

(假设“tab\u frag1\u layout”中有“chart\u container”布局。)

在我的例子中,我使用了
SherlockFragment
,并遇到了同样的问题

线性布局
替换为
视图组
后,将显示图形

ViewGroup chartContainer = (ViewGroup)view.findViewById(R.id.chart_container);

我希望它适用于你和其他有同样问题的人

我没有与achartengine合作过,所以我不确定您为什么看不到图表,抱歉。您可以尝试一些更简单的视图来确保它正常工作。例如,只需在片段中放置一个文本视图或类似的内容,并抓取/使用它来设置“Hello World”,以确保管道正确,然后转到图表内容。有没有想过?我也在尝试做同样的事情。
ViewGroup chartContainer = (ViewGroup)view.findViewById(R.id.chart_container);