2011-11-29 3 views
0

토스트 알림을 제대로 사용할 수없는 것 같습니다. 내 모든 다른 애플 리케이션에서 그것은 위대한 일을했지만 이것은 하나의 않습니다. 이 앱에서는 "Android 게임 시작"이라는 책의 프레임 워크에서 OpenGL을 사용하기 시작했습니다. 이제는 토스트 알림을 사용할 수없는 것 같습니다. 나는 무엇을해야할지 모른다 ... 문맥 때문에 실패한다. 어떻게 작동 할 컨텍스트를 만들 수 있습니까? 제발 도와주세요! 코드가 너무 길어서이 내 코드의 일부입니다 활동을 확장하고 그냥 아무것도하지 않고 실행 클래스에Android에서 Toast 알림을 올바르게 사용하려면 어떻게해야하나요?

Toast.makeText(this, "Start!", Toast.LENGTH_SHORT).show(); 

: 나는 라인을 넣어

private void updateReady() { 
Coin.number = 0; 
if (game.getInput().getTouchEvents().size() > 0) { 
    state = GAME_RUNNING; 
    Coin.number = 0; 
    Num.number = 0; 

    Toast.makeText(this, "Start!", Toast.LENGTH_SHORT).show(); 
    } 
} 

. .. 나는 방법으로 그것을하고 다른 클래스에서 호출하려고하지만 가까운 힘을 ... 가지고

+0

이 스 니펫은 어디에 위치해 있습니까? 수업이 뭐야? – st0le

+0

메인 클래스가 확장 된 클래스에서 입력 할 때 – Baruch

답변

1

당신은 현재 Activity 컨텍스트에 대한 참조를 얻을 수 getApplicationContext()를 사용하여 시도 할 수 있습니다

+0

라고 생각하면 "getApplicationContext() 메소드가 GameScreen 유형에 대해 정의되지 않았습니다."라는 오류가 발생합니다. 아마도 내가 활동을 확장하지 않기 때문일 것입니다. GLScreen을 확장하려고합니다. 내가이 말을 알고 있기 전에이 프레임 워크로 작업했다면 말이죠. 어쨌든 .. 어떻게 확장 할 수 있습니까? – Baruch

+0

@Baruch, getApplication()을 시도하십시오. – st0le

+0

다른 방법과 같음 ... – Baruch

0

항상 응용 프로그램 컨텍스트 또는 GameScreen에서 시작하는 모든 컨텍스트의 컨텍스트를 정적으로 사용 가능하게 만들거나 인스턴스를 만드는 모든 항목의 인수로 전달할 수 있습니다.

그렇다고해서, beware of memory leaks!

+0

하지만 그 중 아무도 활동을 확장하지 않습니다. 아직도 가능합니까? – Baruch

+0

물론, 어딘가에 체인을 따라 가야합니다 (위 코드에서부터 앱이 시작된 곳까지). 활동이 있어야합니다. 맞습니까? 그래서 그것을 필요로하는 클래스에 따라 컨텍스트를 전달 ... 편집 : 또는, 내가 말했듯이, 정적으로 사용할 수있게 ...[이 질문] (http://stackoverflow.com/questions/2002288/static-way-to-get-context-on-android)도 참조하십시오. –

+0

질문을 보았지만 대답을 이해하지 못했습니다 ... 제게 올바른 코드를 써주시겠습니까? Btw 나는 몇 가지 해답을 시도했지만 가까운 힘을 가졌습니다 ... – Baruch

0

아마도 도움이 될 것입니다.

나는 수업이

public class tutorialThree extends Activity implements View.OnClickListener 

같이 정의했다 내가 좋아하는 토스트를 사용하려고이

Toast.makeText(this, "Wallpaper set", Toast.LENGTH_SHORT).show(); 

내 클래스는 해당 인터페이스 "View.OnClickListener"(또는 무엇이든을 구현하므로 작동하지 않았다 is :)) 토스트가 "this"참조와 혼동을 일으킬 정도로 정확해야하므로 다음과 같이 "this"키워드 앞에 클래스 이름을 추가하십시오.

Toast.makeText(tutorialThree.this, "Wallpaper set", Toast.LENGTH_SHORT).show(); 

내 문제가 해결되어 이제 토스트를 볼 수 있습니다.

0

"Beginning Android Games 2"이라는이 프레임 워크로 작업하고 있다고 가정합니다.

code에 따르면 여기에 필요한 인스턴스 변수는 glGame이며 GLGame 개체입니다. Activity까지 확장되므로 다음을 수행 할 수 있습니다.

Toast.makeText(glGame, "Start!", Toast.LENGTH_SHORT).show(); 
관련 문제