2011-09-27 4 views
0

나는 android 프로젝트 v.2.1을가집니다. 그리고 코드가 있는데, 코드에는 Toast가 있지만 작동하지 않았습니다. 왜?토스트 작업 없음

public void click(){ 

    TextView color = (TextView) findViewById(R.id.text); 
    switch(i){ 

    case 1: table.setBackgroundColor(Color.RED); color.setText("Красный"); 
     break; 
    case 2: table.setBackgroundColor(Color.rgb (255, 127, 0)); 
    color.setText("Оранжевый"); 
     break; 
    case 3: table.setBackgroundColor(Color.YELLOW); 
    color.setText("Желтый"); 
     break; 
    case 4: table.setBackgroundColor(Color.GREEN) ; 
    color.setText("Зеленый"); 
     break; 
    case 5: table.setBackgroundColor(Color.rgb (0,191,255)); 
    color.setText("Голубой"); 
     break; 
    case 6: table.setBackgroundColor(Color.BLUE); 
    color.setText("Синий"); 
     break; 
    case 7: table.setBackgroundColor(Color.rgb (160,32,240)); 
    color.setText("Фиолетовый"); 
     break; 
    case 8: // i=1; 
    Toast.makeText(getApplicationContext(), "Вы прошли все цвета",Toast.LENGTH_SHORT).show(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MY TOAST! 
     break; 
    } 

OnCreate에서는 토스트가 아닙니다.

+1

토스트는'case 8 :'으로 인해 i == 8 일 때만 실행됩니다. – Reno

+0

감사합니다. 나는 바보 같은 여자입니다! –

답변

1

토스트를 만들고 표시하는 문장이 정확합니다. 그것은 당신이 논리 오류가있을 가능성이 높습니다 귀하의 스위치 진술은 8 사건을 사용하는 절대적으로 긍정적입니까? 각각의 경우에 어떤 로그 문을 넣어서 어떤 경우에 출력 하는지를 확인하는 것이 좋습니다. 그래서 어떤 일이 더 쉽게 일어나는지 디버깅 할 수 있습니다.

활동의 나머지 부분은 분명하지 않지만 이는 일종의 클릭 수신기 콜백 메소드 인 것으로 보입니다. 그런 경우가 아니어야합니다.

TextView color = (TextView) findViewById(R.id.text); 

클릭 콜백 내부. 이렇게하면 findViewById()가 뷰를 클릭 할 때마다 호출 될 것입니다. 이 방법은 onCreate에서 한 번만 호출하고 다른 모든 시간에 사용할 참조를 유지하는 것이 더 적절하므로 비교적 비싼 방법입니다.