2

開発環境: Eclipse 3.7.0 開発中: Market Place 用の Android 3.2 アプリケーション 使用: aChartEngine 0.7.0

私は開発シーンに不慣れですが、過去のさまざまな言語で少しコーディングを行いました。ZopaStats (マーケットプレイス上) アプリを作成しましたが、現在、テキストベースの統計ページを変換して表示するようにしています。 achartengine を使用した棒グラフ。別のアクティビティを介してアクティビティから表示するグラフを取得できます。

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

しかし、これにより追加のアクティビティ画面が表示されます。つまり:

メイン画面 -> 1st Activity (原文統計ビュー) -> 2nd Activity (グラフ)

そのため、グラフ画面に戻ると、空白の最初のアクティビティ画面が表示されます。ここで意味を成していることを願っています。だから私がやろうとしたことは、メイン画面(つまり、私のメインクラス)からアクティビティを起動することでした。

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 クラスから開始します。

私は新しいと言うので、用語などの誤用についてお詫び申し上げます。私はこれを数日間見てきましたが、インテントとアクティビティのドキュメントはあまり役に立たないので、いくつかのポインタが必要です.

ありがとう、

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

これは非常にうまく機能し、アクティビティ ウィンドウは 1 つだけです。記録的な速さで、迅速な対応に感謝します ;)

于 2012-01-03T07:55:56.123 に答える
0

achartengine を使用してグラフを描画すると、独自のアクティビティが含まれます... ieorg.achartengine.GraphicalActivity.. 押すと、グラフを表示するために使用される独自のアクティビティが表示されます..これらのアクティビティを非表示にするには、 onPause( で finish() メソッドを呼び出します) 方法。

于 2013-09-05T03:37:26.953 に答える