0

私は巨大な計算を行ってから、次のようにインテントを呼び出すメソッドを持っています

public void sampleMethod(final Context cont)
{
 .
 .
 (huge calculation [50-80 lines])
 .
 .
Intent intent = new Intent(cont, TimesheetMain.class);
            finish();
            startActivity(intent);
}

これはアクティビティ「SampleActivity」にあります。次のように、アクティビティ 'B' からアクティビティ 'SampleActivity' のオブジェクトを介してアクセスしようとすると:

Context context = this;
SampleActivity sa = new SampleActivity();
sa.sampleMethod(context);

アクティビティ 'B' からコードにアクセスしているときに、コード行で を取得してNullPointerExceptionいます。startActivityここでどこが間違っているのかわかりません。私を助けてください

編集2

これは、のようにコンテキストを追加したときに機能するようcont.startActivity(intent)ですが、セカンダリ クラスで別のクラスまたは別のアクティビティの関数を使用してはならない理由を知る必要がありますか? Androidフレームワークが理由ですか?過去2か月ほどこれを(意図的な部分なしで)行ってきましたが、エミュレーターまたはデバイス(Nextbook professional 7 SE)で突然の強制終了の問題に直面したことはありません。正当な例で説明してください

4

2 に答える 2

2

次のようにしているので、アクティビティの明示的なインスタンスを自分で作成することは想定されていません。

SampleActivity sa = new SampleActivity();

あなたの問題と、この問題の結果で達成したいことについて、より適切な説明を提供してください。

于 2012-11-15T13:24:20.660 に答える
1

次の更新されたコードを試してください。

public void sampleMethod(final Activity cont)
{
Intent intent = new Intent(cont, TimesheetMain.class);
            cont.finish();
            cont.startActivity(intent);
}

また、このメソッドを util クラスに移動し、アクティビティから呼び出して、次のようにアクティビティ参照を渡します

class ActivityB extends Activity
{
.
.
.

Util.sampleMethod(this);
}
于 2012-11-15T13:24:31.160 に答える