吐司没有用

时间:2011-09-27 18:00:31

标签: android toast

我有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;
    }

Toast不在OnCreate中。

1 个答案:

答案 0 :(得分:1)

您创建和显示Toast的声明是正确的。很可能你有一个逻辑错误你绝对肯定你的switch语句使用case 8吗?最好在每个案例中放置一些日志语句,打印出哪种情况,以便您可以更轻松地调试发生的事情。

我不确定你的其他活动是什么样的,但这似乎是某种点击监听器回调方法。如果是这种情况你就不应该

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

在点击回调中。这样做意味着每次单击视图时都会调用findViewById()。由于这是一种相对昂贵的方法,因此调用它更适合在onCreate中调用它一次,并保留你所需要的所有其他时间的引用。