2011-04-12 2 views
12

위치 수신기 활동이 있고 토스트 알림을 만들고 싶습니다. 그러나 문맥으로 this을 전달하지 않을 것입니다. 토스트 작업은 어떻게해야합니까?컨텍스트로 "this"를 사용할 수없는 경우 토스트 사용 방법

+0

활동 코드 및 오류 메시지를 게시 할 수 있습니까? 액티비티 내에서 유효한 컨텍스트를 가져올 수 있어야합니다. –

+0

'Toast 타입의 메소드 makeText (Context, CharSequence, int)는 인수 (mylocationlistener, String, int)에 적용 할 수 없습니다. ' –

+0

나는 activityList의 하위 클래스 인 –

답변

16

을 토스트가 활동 클래스 내부에있는 경우, 통 더 할 수 YourActivity 클래스 이름입니다 YourActiviy.this. 클래스 외부에있는 경우 활동 컨텍스트를 가져와야합니다 (생성자에서 전달).

+0

설정이 잘못 되었기 때문에 작동하지 않았지만 지금은 –

5

당신은 예를 들어 NameOfYourActivity.this

를 사용할 수 있습니다

public class MyActivity extends Activity { 

... 
    Toast.makeText(MyActivity.this, text, duration).show(); 
+0

을 locationlistener로 만들겠다고 결심했습니다. 'locationListener' 메소드가 오류를 발생시킵니다. Toast 유형의 메소드'makeText (Context, CharSequence, int)가 인수 (mylocationlistener, String, int)에 적용되지 않습니다. ' –

+0

@Seth - locationlistener는 활동이 아닙니다. – MByD

+0

OP에 코드를 붙여 넣으면 도움이 될 것입니다. – ccheneson

0

활동의 내부 클래스에있는 것처럼 들립니다. 그렇다면 ActivityName을 시도하십시오.

5

당신이 내부 클래스에있는 경우에는 그 안에 "onComplete를"이라는 방법으로 리스너가있는 경우 다음이 코드를이 또한

getApplicationContext() 예를 들어

+3

입니다. 이것은 UI 스레드에서 벗어난 경우에는 작동하지 않습니다. –

1

을 시도 작동해야합니다.

public void onComplete(String response, Object state) { 
     final String response_complete = response; 
     MyActivity.this.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       Toast.makeText(MyActivity.this, text, duration).show(); 
      } 
     }); 
    } 

그렇게해야합니다. 대신

1

getApplicationContext 시도()

Toast tea = Toast.makeText(getApplicationContext(), "Send", Toast.LENGTH_LONG); 
tea.show(); 
2

필드 변수 : 한 OnCreate 내부 Context context;

: context = this;

자 마린/C# 구문 : Toast.MakeText(context, "your message", ToastLength.Long).Show();

안드로이드/자바 구문 : Toast.makeText(context, "your message", Toast.LENGTH_LONG).show();

관련 문제