2013-07-31 1 views
0

submitbtn을 클릭하면 text 변수에 저장된 정보를 표시 할 토스트를 만들려고합니다. 나는 점점 오전 오류가없는 코드의 실행에와 있지만, 이클립스 말해 함께 다음 토스트에알아낼 수없는 오류를 제공하는 버튼 탭 안의 토스트 호출

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (Class, String, int)

파일은 UserInput.java 파일입니다. 여기에 현재 코드 블록 :

Button submitBtn = (Button) findViewById(R.id.buttonSubmit); 
    submitBtn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      int position = spinner.getSelectedItemPosition(); 
      String text = null; 
      text = dayArray[position].toString(); 
      //Log.i("spinner test: ", text); 
      Toast toast = Toast.makeText(UserInput.class, text, Toast.LENGTH_LONG).show(); 
     } 
    }); 

심지어 UserInput.thisgetApplicationContext()에 컨텍스트를 설정하는 시도는 그 날이 오류를 제공합니다

Type mismatch: cannot convert from void to Toast

난 당신이 내가 안드로이드임을 알려드립니다을 초보자 그리고 다소 자바 초보자이지만 나는 높거나 낮은 것을 검색했으며 어떤 해결책도 찾을 수 없다. 이 토스트는 내가 개발중인 앱에서도 중요하지 않으므로 완전히 제거 될 수 있습니다. 그러나 이것이 내 학습 과정에서 왜 작동하지 않는지 알고 싶습니다.

답변

2

변경

Toast toast = Toast.makeText(UserInput.class, text, Toast.LENGTH_LONG).show(); 

Toast.makeText(UserInput.this, text, Toast.LENGTH_LONG).show(); 

에 당신은 Activity Context 그래서 당신이 ActivityName.this를 사용하여 사용해야합니다.

그러나 원래 문제는이 방법을 사용하는 경우 show()을 호출하기 때문에이 모든 것을 정적으로 호출해야한다는 것입니다.

당신은 show()을 벗고 당신은 당신의 Toast에 대한 사용자 지정 View를 사용하는 호출 setView()으로 그것으로 다른 일을하기를 원한다면 Toast의 인스턴스를 만들 수 있습니다. 그런 다음 생성 한 Toast 인스턴스에서 show()으로 전화하십시오.

+0

같은 문장에서 Toast를 보여줄 때 Toast toast ='구문의 첫 부분에 빌드 할 필요가 없습니다. – Creaswen

+0

'정적'컨텍스트에서 사용하기 때문에 오류가 발생합니다. 'ProgressDialog'를 사용하는 것보다 훨씬 더 명백하게 보일 수도 있고 그렇지 않을 수도 있습니다 (012dev.nl/reference/android/widget/Toast.html) – codeMagic

+0

[The Docs Here] – codeMagic