我有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中。
答案 0 :(得分:1)
您创建和显示Toast的声明是正确的。很可能你有一个逻辑错误你绝对肯定你的switch语句使用case 8吗?最好在每个案例中放置一些日志语句,打印出哪种情况,以便您可以更轻松地调试发生的事情。
我不确定你的其他活动是什么样的,但这似乎是某种点击监听器回调方法。如果是这种情况你就不应该
TextView color = (TextView) findViewById(R.id.text);
在点击回调中。这样做意味着每次单击视图时都会调用findViewById()。由于这是一种相对昂贵的方法,因此调用它更适合在onCreate中调用它一次,并保留你所需要的所有其他时间的引用。