2

开发环境:Eclipse 3.7.0 开发:用于 Market Place 的 Android 3.2 应用程序使用:aChartEngine 0.7.0

我是开发场景的新手,但在过去的各种语言中做了一些编码,我创建了 ZopaStats(on Marketplace) 应用程序,但我现在正在尝试将基于文本的统计页面转换为显示在使用 achartengine 的条形图。我可以通过另一个活动从一个活动中显示图表,即:

Intent achartIntent = new TemperatureChart().execute(this);
startActivity(achartIntent);

但这给了我一个额外的活动屏幕,即:

主屏幕 -> 第一个活动(原始文本统计视图)-> 第二个活动(图表)

因此,当我回击图形屏幕时,我得到了空白的第一个活动屏幕。我希望我在这里有意义。所以我试图做的是从主屏幕(即我的主类)启动活动,例如

final Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
  Intent achartIntent = new TemperatureChart().execute(this);
  startActivity(achartIntent);
  }
});

但是eclipse在代码中给了我以下错误:

TemperatureChart 类型中的方法 execute(Context) 不适用于参数 new (View.OnClickListener(){}}

我尝试让 Eclipse 更改方法,但这会导致其他问题,所以我认为我真正想要的(以一种全面的方式)是找出当我可以尝试从另一个 Activity 类,而不是从主类开始。

我对滥用术语等表示歉意,因为我说我是新手。我已经看了几天了,但是 Intent 和 Activity 文档对我没有多大帮助,所以我只需要一些指示。

谢谢,

4

3 回答 3

1

在您的示例中,this您传递给的引用execute()是 OnClickListener 的匿名内部子类。这不是 Eclipse 所抱怨的上下文对象。

相反,您想传入活动实例。假设您发布的代码片段位于名为 的类中MyExampleActivity,那么您可以MyExampleActivity.this从内部类内部使用来访问包含类的实例。您应该可以将其传递给TemperatureChart.execute()

从主要活动或任何其他活动开始活动没有区别。您只需创建一个意图,并在其上调用 startActivity。

于 2012-01-02T20:46:34.653 回答
1

为了完整起见,新代码是这样的: 注意我原来的类叫做 ZopaStats.class

final Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
  Intent achartIntent = new MarketZopaGraph().execute(ZopaStats.this);
  startActivity(achartIntent);
  }
});

这很好用,只有一个活动窗口,再次非常感谢您在创纪录的时间内快速响应;)

于 2012-01-03T07:55:56.123 回答
0

当我们使用 achartengine 绘制图形时,包括它自己的活动...... ) 方法。

于 2013-09-05T03:37:26.953 回答