2010-11-21 16 views
3

これは「新しいものから古いものにデータを取り出す方法」と同じ質問です。レイアウト:main.xmlから初期化されたクラスでstartActivityForResultを呼び出す方法

私の最初のアクティビティでは、私はsetContentView(R.layout.main);を呼び出しました。キャンバスに面取り図があります。

私が知っている唯一の方法は、getContext()を呼び出してコンテキストを取得し、次にstartActivity()を呼び出すことです。しかし、startActivityForResult()という文脈からは私はそれを呼び出すことができません。それはサポートしていないようです。私は自分のアクティビティクラスでのみ呼び出す必要があります。

誰にでも私の意見はありますか?

編集:ここでは

が私のコードです:

public class gameView extends SurfaceView implements SurfaceHolder.Callback 
{ 
    public gameView(Context context, AttributeSet attrs) 
    { 
     //This is how I do : 
     Intent intent = new Intent(); 
     intent.setClass(getContext(), inputCharactorName.class); 
     getContext().startActivity(intent); 
     //This what I WANT to , but I don't know how 
     //Activity.startActivityForResult(null,FPS); 
     //I want to start the activity here; 
    } 
} 
+0

私は私はあなたの問題を理解していないが、 'getApplicationContext(試す)' – cristis

+0

ポストいくつかのあなたが持っている問題を示すコードで、人々が理解して答えるのに役立つかもしれません(質問から、私があなたが何を求めているのか分からず、コードが助けになるかもしれません)。 –

+0

私はビューのコンテキストを返すためにview.getContext()を使用します。しかし、startActivityForResult()を呼び出すことはできません。私はなぜわからない –

答えて

7

あなたはのgetContext()は、あなたが行うことができますActivityのインスタンスであることを完全に確信している場合:

((Activity)getContext()).startActivityForResult(intent, 0); 
+0

ありがとう、それは動作するように見える私を試してみましょう。 –

+0

私がstartActivityForResult()を呼び出した後、私のFPSは突然60から18に落ちました。なぜですか? –

+0

実際のデバイスでテストした後、エミュレータのバグです。それは消えて、thx –

2

は、誰も私にどんな意見を述べることはできますか?

アクティビティからstartActivityForResult()と電話してください。 SurfaceViewなど、あなたのアクティビティでstartActivityForResult()への呼び出しをトリガーするメソッドを呼び出してください。

+0

しかし、問題は私はそれをどのように呼び出すのか分からない。呼び出す方法がわかっているなら、問題は解決されます。 –

+0

私がstartActivityForResult()を呼び出した後、私のFPSは突然60から18に落ちました。なぜですか? –

+0

サブアクティビティはメインアクティビティを遅くすると思います。しかし、私はそれが私を遅くする理由を知らない –

関連する問題