2010-11-21 3 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

하위 활동이 내 주요 활동을 느리게한다고 생각합니다. 나는 마무리라고 불렀지 만, 왜 그것이 나를 늦추는 지 모르겠다. –

관련 문제