Android layout 选项卡视图中的Achartengine图

Android layout 选项卡视图中的Achartengine图,android-layout,tabs,achartengine,Android Layout,Tabs,Achartengine,我是一个初学者,正在做一些关于列表和图表的工作。 我使用的代码与achartengine示例提供的代码相同。 My launcher活动是从TabActivity派生的,其创建方法如下所示 setContentView(R.layout.tabstrip); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity Tab

我是一个初学者,正在做一些关于列表和图表的工作。 我使用的代码与achartengine示例提供的代码相同。 My launcher活动是从TabActivity派生的,其创建方法如下所示

setContentView(R.layout.tabstrip);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost();  // The activity TabHost
TabHost.TabSpec spec;  // Resusable TabSpec for each tab
Intent intent;  // Reusable Intent for each tab
SalesBarChart myChart = new SalesBarChart();
intent = myChart.execute(this);   
spec = tabHost.newTabSpec("BarChart").setIndicator("BarChart",
                  res.getDrawable(R.drawable.ic_tab_barchart))
              .setContent(intent);
tabHost.addTab(spec);
AverageTemperatureChart myChart1 = new AverageTemperatureChart();
intent = myChart1.execute(this);
spec = tabHost.newTabSpec("albums").setIndicator("Albums",
                  res.getDrawable(R.drawable.ic_tab_linechart))
              .setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
我的xml文件看起来像

     <TabHost
      xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
         <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp">
           <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
           <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="5dp" />
       </LinearLayout>

我在点击按钮时在startactivity(意图)中激发的相同意图可以工作,但在选项卡中不起作用。
请帮忙。提前谢谢。

两周前我也有同样的问题。但我在xml层中使用了pieChart并结合了其他视图。 无论如何,我为每个选项卡和图表创建一个活动,并调用这些活动而不是图表。 在我的一项活动中,我有一个剪掉的代码:

public class FirstChartActivity extends Activity{
    // other code
    protected void onResume() {
            super.onResume();
            if (hChartView == null) { // first time pie chart is empty
                renderer = buildCategoryRenderer(colors);
                renderer.setLabelsTextSize(14);
                categorySeries = setCategorySeries("First PieChart",
                        myList);
                // draw pie chart with initialized values (myList and colors)
                hChartView = ChartFactory.getPieChartView(this, categorySeries,
                renderer);
                LinearLayout layout = (LinearLayout) findViewById(R.id.pch_chart);
                layout.addView(hChartView, new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));
            } else {
                hChartView.repaint();
            }
        }

        protected DefaultRenderer buildCategoryRenderer(int[] colors) {
            DefaultRenderer renderer = new DefaultRenderer();
            for (int color : colors) {
                SimpleSeriesRenderer r = new SimpleSeriesRenderer();
                r.setColor(color);
                renderer.addSeriesRenderer(r);
            }
            return renderer;
        }

        protected CategorySeries setCategorySeries(String chartTitle,
                HashMap<String, Double> hashMap) {
            CategorySeries cs = new CategorySeries(chartTitle);
            Iterator<String> iter = hashMap.keySet().iterator();
            while (iter.hasNext()) {
                String key = iter.next();
                Double val = hashMap.get(key);
                cs.add(key, val);
            }
            return cs;
        }
    }
公共类FirstChartActivity扩展活动{
//其他代码
受保护的void onResume(){
super.onResume();
如果(hChartView==null){//第一次饼图为空
渲染器=buildCategoryRenderer(颜色);
setLabelsTextSize(14);
categorySeries=setCategorySeries(“第一个饼图”,
myList);
//使用初始化值(myList和颜色)绘制饼图
hChartView=ChartFactory.getPieChartView(此,类别系列,
渲染器);
LinearLayout布局=(LinearLayout)findViewById(R.id.pch\U图表);
layout.addView(hChartView,新LayoutParams(LayoutParams.FILL_父级,
LayoutParams.FILL_PARENT));
}否则{
hChartView.repaint();
}
}
受保护的DefaultRenderer buildCategoryRenderer(int[]颜色){
DefaultRenderer=新的DefaultRenderer();
用于(整型颜色:颜色){
SimpleSriesRender r=新的SimpleSriesRender();
r、 设置颜色(颜色);
渲染器.addSeriesRenderer(r);
}
返回渲染器;
}
受保护类别系列setCategorySeries(字符串chartTitle,
HashMap(HashMap){
CategorySeries cs=新的CategorySeries(图表标题);
迭代器iter=hashMap.keySet().Iterator();
while(iter.hasNext()){
String key=iter.next();
Double val=hashMap.get(key);
cs.add(key,val);
}
返回cs;
}
}
我希望这段代码对您有所帮助