0

我正在尝试使用来自 achartengine (http://www.achartengine.org/) 的库来构建一个字符。所以我尝试在我自己的应用程序上运行 SalesGrowthChart.java,所以当有人点击一个按钮时,它会向他显示图表。

这是我的代码:

private IChart[] mCharts = new IChart[]{new generatedchart()};

我尝试像这样生成它

bt.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                 Intent myIntent = new Intent(view.getContext(), generatedchart.class);
                 myIntent=mCharts[0].execute(this);
            }
        });

但这行不通。我怎样才能让它工作。希望你明白我在说什么。这是错误:

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

4

2 回答 2

0

当您调用thiswithin时,由于动态类声明execute(),它指的是类。OnClickListener尝试使用getApplicationContext()而不是this.

于 2011-02-16T21:27:22.710 回答
0

您的问题是该方法中提到的“this”指的是一个视图(这就是您当时正在创建的内容。)

方法execute需要一个上下文,所以你需要以不同的方式获取上下文。

您应该尝试获取这样的上下文:

YourActivityName.this

在您的代码中会是这样的:

bt.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                 Intent myIntent = new Intent(view.getContext(), generatedchart.class);
                 myIntent=mCharts[0].execute(YourActivityName.this);
            }
        });
于 2011-02-16T21:21:49.210 回答