Тост не работал - PullRequest
       26

Тост не работал

0 голосов
/ 27 сентября 2011

У меня есть проект Android v.2.1.и у меня есть код, в коде у меня есть тост, но он не работает.Почему?

    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 Ответ

1 голос
/ 27 сентября 2011

Ваше утверждение для создания и показа Тоста является правильным. Вероятно, у вас логическая ошибка. Вы абсолютно уверены, что ваш оператор switch использует случай 8? Было бы неплохо поместить в каждый случай несколько операторов журнала, которые распечатывали бы какой это случай, чтобы вам было легче отлаживать происходящее.

Я не уверен, как выглядит остальная часть вашей деятельности, но, похоже, это какой-то метод обратного вызова прослушивателя щелчков. Если это так, у вас не должно быть

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

Внутри обратного вызова. Это означает, что findViewById () будет вызываться каждый раз при щелчке по вашему представлению. Поскольку это относительно дорогой метод, вызывать его более уместно, вызывая его один раз в вашем onCreate и просто сохраняя ссылку, которую вы получите, в остальное время, когда вам это понадобится.

...